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