Adicionando texto após linha específica de arquivo no script Bash

1

Eu tenho um arquivo txt ( ip.txt ) que contém endereço IP. Eu agrupo-os sob o TCP e o UDP. O trecho do arquivo está abaixo:

#TCP
162.298.38.930
162.298.38.931
162.298.38.932
#UDP
162.298.38.930
162.298.38.931
162.298.38.932

Eu tenho um IP específico ( 162.298.38.929 ) para adicionar ambos por script bash a este ip.txt em linhas TCP e UDP para que ele seja assim.

#TCP
162.298.38.929
162.298.38.930
162.298.38.931
162.298.38.932
#UDP
162.298.38.929
162.298.38.930
162.298.38.931
162.298.38.932

Como posso conseguir isso no script bash? O número da linha não é utilizável para o meu caso porque o número da linha #TCP e #UDP pode ser alterado porque incluo muitos comentários no arquivo. O Bash Script deve pesquisar e adicionar o IP em TCP e UDP.

    
por NecNecco 03.09.2014 / 05:34

1 resposta

5

Use a ação de acréscimo do GNU Sed

Supondo que ambas as seções tenham 162.298.38.932 e que você queira anexar o outro endereço IP imediatamente abaixo de ambas as entradas, o seguinte script sed faz o trabalho.

sed '/162\.298\.38\.932/a2.298.38.929' ip.txt
    
por 03.09.2014 / 05:39