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 \1
para 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
- manuais;perl,perlrun
- -p é por loop de linha
- -eu estou embutido
- -e é expressão (expressão regular)