ao usar sed
com um arquivo como este
sed 's/a/o' fruits
fornece a saída necessária ao terminal, mas não altera o conteúdo do arquivo. Como altero permanentemente o arquivo com a substituição acima?
Responder1
Use o -i
parâmetro para alterar permanentemente o arquivo.
Responder2
Em geral, você não deveria. GNU coreutils e algumas outras versões adicionam uma -i
opção para edição no local, mas tem implementações variadas e não é portátil. Os arquivos não são fluxos, portanto sed
, deve-se evitar editá-los . A -i
opção sed
também quebra qualquer link simbólico, pois essencialmente o exclui e recria o arquivo. Use ed
ou ex
para uma alternativa mais sensata.
ex -s file << EOF
s/a/o/
w
EOF
Responder3
Na página de manual do sed:
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if extension supplied)