Digamos que hay un archivo de texto como el siguiente:
Hello world
types=""
Mario
types="Game"
Lo que quiero hacer es encontrar la primera aparición type=""
y agregarle la palabra "programa". Necesito salida como:
Hello world
types="program"
Mario
types="Game"
Necesito usar esto en scripts de shell de Unix. Lo que probé es:
sed -i '1,/types=""/s/types=""/types="program"/' filename
Tal como se ve el comando, solo inserta, no agrega. Intenté agregar a\
pero todavía no funciona.
Respuesta1
Su sed
sustitución de una sola línea parece funcionar como pretende:
$ cat t.txt
Hello world
types=""
Mario
types="Game"
$ sed '1,/types=""/s/types=""/types="program"/' t.txt
Hello world
types="program"
Mario
types="Game"
Podría valer la pena editar su pregunta para mostrar quétúobtiene cuando ejecuta su sed
comando (sin la -i
opción para que los resultados se impriman en la terminal).
Por cierto, su rango de 1,/types=""/
es redundante. Puedes simplificarlo como:
sed '/types=""/s/types=""/types="program"/' t.txt