Script Bash para excluir e inserir linhas

3

Eu preciso de um script para desmontar e reconstruir um arquivo, excluindo uma linha em algum lugar e inserindo algumas linhas em seu lugar.

Então A ) eu preciso de um comando que selecione tudo antes dessa linha, mas não essa linha, e nada depois dessa linha, e B ) eu preciso de um que selecione tudo depois dessa linha, mas não dessa linha, só depois dela ...

    
por Tibor Áser Veres 18.03.2017 / 13:12

2 respostas

3

Exemplo usando sed

O arquivo lines :

line 1
line 2
line three
line 4

Script, que substitui a linha pelo conteúdo line three por três novas linhas:

sed  '/line three/ c\
This is a new line\nNext line\nLast new line' lines

onde \n 'newline' separa as novas linhas.

Saída:

line 1
line 2
This is a new line
Next line
Last new line
line 4

Veja este link para detalhes sobre sed ,

www.grymoire.com/Unix/Sed.html

    
por sudodus 18.03.2017 / 13:48
0

Suponha que você tenha um arquivo chamado in.txt com o conteúdo:

one
two
three
four
five
E você também tem um arquivo chamado middle.txt :
drei
trois
Se você quiser substituir "três" no primeiro arquivo pelo conteúdo do segundo arquivo, poderá escrever algo parecido com isto em um arquivo replace.awk :
#!/usr/bin/awk -f
{
    if ($0 == "three") {
        file="middle.txt";
        while ((getline  0) {
            print;
        }
    } else {
        print;
    }
}

Em seguida, torne-o executável:

chmod +x replace.awk

E execute:

./replace.awk < in.txt

O resultado será:

one
two
drei
trois
four
five
    
por Cos64 18.03.2017 / 13:48