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!