sed
é a s tream ed itor , em que você pode usar |
(pipe) para enviar streams padrão (STDIN e STDOUT especificamente) através de sed
e alterá-los programaticamente no voar, tornando-se uma ferramenta útil na tradição da filosofia Unix; mas também pode editar arquivos diretamente, usando o parâmetro -i
mencionado abaixo.
Considere o seguinte :
sed -i -e 's/few/asd/g' hello.txt
s/
é usado para s ubstitute a expressão encontrada few
com asd
:
The few, the brave.
The asd, the brave.
/g
significa "global", significando fazer isso para toda a linha. Se você deixar de fora o /g
(com s/few/asd/
, sempre precisará ter três barras, não importa o que) e few
aparecer duas vezes na mesma linha, somente o primeiro few
será alterado para asd
:
The few men, the few women, the brave.
The asd men, the few women, the brave.
Isso é útil em algumas circunstâncias, como alterar caracteres especiais no início das linhas (por exemplo, substituir os símbolos de maior que algumas pessoas usam para citar material anterior em encadeamentos de e-mail com uma guia horizontal, deixando uma inequação algébrica mais tarde na linha intocada), mas no seu exemplo onde você especifica que em qualquer lugar few
ocorre, ele deve ser substituído, certifique-se de ter esse /g
.
As duas opções a seguir (sinalizadores) são combinadas em uma só, -ie
:
-i
é usada para editar i n place no arquivo hello.txt
.
-e
indica o comando e xpression / a executar, neste caso s/
.
Nota: é importante que você use -i -e
para pesquisar / substituir. Se você usar -ie
, crie um backup de todos os arquivos com a letra 'e' anexada.