Encontre e edite linha no arquivo

Encontre e edite linha no arquivo

Se algum arquivo contiver uma linha:

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

Qual seria a melhor combinação de utilidades para:

  • Encontre essa linha no arquivo (suponha que seja a única linha com a string 'OPTION'
  • anexe à string de opções para que seja agora:

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

Responder1

Com o venerável ed:

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

Responder2

Usandosed

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

\(coloca o padrão em um registro que é recuperado \1para substituição. Observe \"onde você precisa escapar "com uma barra invertida.

Se você estiver procurando pelo padrão que começa com OPTION, você pode usar

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

Responder3

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

informação relacionada