Buscar y editar línea en archivo

Buscar y editar línea en archivo

Si algún archivo contiene una línea:

...
OPTION=“—option1 —option2 param —option3 —option4”
...

¿Cuál sería la mejor combinación de utilidades para:

  • Busque esa línea en el archivo (suponga que es la única línea con la cadena 'OPCIÓN'
  • agregue a la cadena de opción para que ahora sea:

    OPTION=“—option1 —option2 param —option3 —option4”
    

Respuesta1

Con el venerable ed:

ed file <<<EOF
/OPTION/a
-option5
.
wq
EOF

Respuesta2

Usandosed

sed 's/\(OPTION=\“—option1 —option2 param —option3 —option4\)\"/\1 -option5\"/

\(coloca el patrón en un registro que es recuperado \1para sustitución. Observe \"dónde debe escapar "con una barra invertida.

Si está buscando el patrón que comienza con OPTION, puede usar

sed 's/\(OPTION=.*\)\"/\1 -option5\"/

Respuesta3

perl -pi -e 's/(OPTION=".*)"/$1  —option5"/g' file.txt

información relacionada