Como usar o sed no Linux

Sed significa editor de fluxo. É um editor baseado em linha de comando para Linux. O uso popular de sed é para editar arquivo (s) como parte de um script de automação no Linux, já que os editores usuais requerem entrada ativa do usuário e não podem editar arquivos fora das telas do editor. O sed é mais comumente usado para localizar e substituir a partir da linha de comando.

Este tipo de editor de texto também pode ser categorizado como um editor de texto não interativo.

Vamos ver algumas opções comuns para editar arquivos usando Sed. Tomaremos o seguinte arquivo como exemplo:

$: cat test.txt Um rápido cachorro marrom saltou sobre o gato preguiçoso. Sistema operacional Linux. A floresta perto da minha casa tem um gato e também lobos. 

Pesquisar e substituir

Para pesquisar uma string em um arquivo e substituí-la por outra string, execute:

sed -i "s / cat / fox / g" test.txt

Aqui o -eu sinalizador instrui o sed a gravar as alterações no arquivo. Sem esta bandeira, sed irá apenas exibir o arquivo com a string alterada.

Nas citações, temos s / cat / fox / g. O s é para o comando de pesquisa e substituição de sed. Então temos a string a ser pesquisada, que é gato. Em seguida, a string para substituí-lo, ou seja, Raposa. Finalmente, temos o opcional g, que instrui sed para substituir todas as ocorrências em todas as linhas do arquivo. Sem o g, o sed substituirá apenas a primeira ocorrência de gato em cada linha.

Regex também pode ser usado aqui.

sed -i "s / f [a-z] * \ ./ cat \ ./ g"

Inserir

Para inserir texto antes de uma linha com uma string correspondente, use:

sed -i "/ cat / i Iniciar:" test.txt

Aqui, gato é a string pesquisada e Começar: é a string a ser inserida antes da linha onde a string pesquisada é encontrada.

Da mesma forma, para inserir texto após uma linha, use:

sed -i "/ fox / a End." test.txt

Excluir

Para excluir uma linha contendo uma substring, use:

sed -i "/ Linux / d" test.txt

Para excluir uma linha com número de linha, por exemplo. a primeira linha, use:

sed -i '1d' test.txt

Combinando múltiplas funções

Para combinar várias funções, por exemplo. pesquise e substitua, exclua, em um comando, -e bandeira pode ser usada.

sed -i -e "s / fox / cat / g" -e '2d' test.txt

? Felicidades!