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