No Linux, Sed (Stream Editor) é uma ferramenta de processamento de texto muito poderosa que permite realizar operações como substituir, excluir e inserir texto. Abaixo apresentarei algumas técnicas de comando Sed comumente usadas:
-
Substituir texto: use
s
comandos para substituir texto. Por exemplo, para substituir “antigo” por “novo” no texto, você pode usar o seguinte comando:sed 's/old/new/g' input.txt > output.txt
Isso substituirá “antigo” em “input.txt” por “novo” e gerará o resultado em “output.txt”.
-
Excluir linhas: use
d
o comando para excluir linhas especificadas. Por exemplo, para excluir linhas contendo uma string específica, você pode usar o seguinte comando:sed '/pattern/d' input.txt > output.txt
Isso excluirá todas as linhas que contêm "pattern" em "input.txt" e gerará os resultados em "output.txt".
-
Inserir linha: Use
i
o comando para inserir uma nova linha na posição especificada. Por exemplo, para inserir uma linha de texto antes da linha 3, você pode usar o seguinte comando:sed '3i\This is a new line.' input.txt > output.txt
Isto irá inserir uma linha "Esta é uma nova linha." antes da linha 3 de "input.txt" e gerar o resultado em "output.txt".
-
Imprimir linhas especificadas: use
-n
parâmetros para imprimir apenas linhas que atendam às condições. Por exemplo, para imprimir linhas contendo uma string específica, você pode usar o seguinte comando:sed -n '/pattern/p' input.txt > output.txt
Isso imprimirá todas as linhas contendo "pattern" em "input.txt" e enviará os resultados para "output.txt".
-
Edição múltipla: você pode usar várias combinações de comandos para realizar edições múltiplas. Por exemplo, para primeiro excluir a linha que contém “foo” e depois substituir “bar” por “baz”, você usaria o seguinte comando:
sed -e '/foo/d' -e 's/bar/baz/g' input.txt > output.txt
Isso primeiro excluirá todas as linhas que contêm "foo" em "input.txt", depois substituirá "bar" por "baz" e gerará o resultado em "output.txt".
-
Substituir delimitadores: os comandos Sed usam barras
/
como delimitador padrão, mas isso pode causar confusão ao processar texto que contém barras. É possível usar outros caracteres como delimitadores, por exemplo usando#
como delimitador:sed 's#http://www.example.com#https://www.example.com#g' input.txt > output.txt
Isso substituirá "http://www.example.com" em "input.txt" por "https://www.example.com" e gerará o resultado em "output.txt".
Acima estão algumas técnicas de comando Sed comumente usadas.Espero que ajude você a usar o Sed para processamento de texto no Linux. Lembre-se de ajustar e combinar comandos de acordo com a situação real para aproveitar as vantagens dos poderosos recursos de processamento de texto do Sed.