Como sed duas palavras em uma linha e adicionar antes e depois?

1

Eu estava curioso para saber se há uma maneira melhor de sed duas palavras e adicionar uma linha antes e depois delas.

Eu aprendi como de grymoire , mas eu queria saber se havia uma maneira melhor de faça:

#!/bin/sh
sed '
/foo/,/bar/ {
i\
Add this line before
a\
Add this line after
}'

O que estou tentando fazer é encontrar duas palavras em uma linha, neste caso foo e bar e, em seguida, adicionar algo na linha antes e na linha seguinte.

Se não for muito problema ou fora do tópico, alguns podem recomendar nos comentários alguns outros sites para ler sobre sed além do grymoire?

    
por DᴀʀᴛʜVᴀᴅᴇʀ 18.12.2013 / 18:06

1 resposta

1

o awk é mais fácil, IMO

awk '
    /foo/ && /bar/ {
        print "Add this line before"
        print
        print "Add this line after"
        next
    }
    {print}
' file
    
por glenn jackman 18.12.2013 / 20:29