On Mon, 2003-03-24 at 13:41, Fernando Blat Peris wrote:
> A alguien se le ocurre algo m�s elegante que mi chapucilla??

Probablemente no he entendido lo que Rafael quiere, pero me suena
demasiado simple...  En fin.  Mi soluci�n no es m�s elegante, pero s�
m�s compacta (y quiz� m�s entendible y f�cil de mantener):

Asumiendo que el archivo contiene una l�nea que reza literalmente
"Nombre: <var1> cuya direcci�n ip es <var2>":

-----------------------------------------------------------------------
#!/bin/bash
if [ -z "$1" -o -z "$2" ]; then
  echo "Uso: $0 nombre ip" >&2
  exit 1
fi

sed -e "s|^Nombre: <var1> cuya direcci�n ip es <var2>|\
Nombre: $1 cuya direcci�n ip es $2|"

exit 0
-----------------------------------------------------------------------

Y lo usar�as como un filtro:

  cat archivo.in | script NOMBRE 123.123.123.123 > archivo.out

O, si te interesa reemplazar el archivo, algo como

  script NOMBRE 123.123.123.123 < archivo > archivo.$$ && \
    mv archivo.$$ archivo

Dec�a que "demasiado f�cil" porque �sto es realmente un "one liner": no
es necesario hacer el script, basta con teclear la invocaci�n a sed.

Pero bueno, seguramente no he entendido...

 -CR


Responder a