Se você quiser apenas inserir uma nova linha após o pattern2, então isso funcionará -
sed '/pattern2/s/$/\n/' file
[jaypal:~/Temp] cat file
some text
some text
some text pattern1
some text p
some text p
some text p
some text pattern2
some text
some text
[jaypal:~/Temp] sed '/pattern2/s/$/\n/' file
some text
some text
some text pattern1
some text p
some text p
some text p
some text pattern2
some text
some text
i\
é para inserção. Ele inseria before
de um endereço. Se você precisar de uma nova linha, use \a
, que é append
.
[jaypal:~/Temp] sed '/pattern2/ a\
' file
some text
some text
some text pattern1
some text p
some text p
some text p
some text pattern2
some text
some text
Se você quiser adicionar uma nova linha após suas linhas / pattern2 / e exibir linhas entre elas, pode ser que você possa fazer algo assim -
[jaypal:~/Temp] sed -e '/pattern2/G' -ne '/pattern1/,/pattern2/p' file
some text pattern1
some text p
some text p
some text p
some text pattern2
[jaypal:~/Temp]
Solução semelhante em awk
-
[jaypal:~/Temp] cat file
some text
some text
some text pattern1
some text p
some text p
some text p
some text pattern2
some text
some text
[jaypal:~/Temp] awk '/pattern1/,/pattern2/ END{print ""}' file
some text pattern1
some text p
some text p
some text p
some text pattern2
[jaypal:~/Temp]