Em grep
você pode usar --group-separator
para escrever algo entre as correspondências do grupo.
Isso é útil para esclarecer quais blocos temos, especialmente ao usar a -C X
opção para obter linhas de contexto.
$ cat a
hello
this is me
and this is
something else
hello hello
bye
i am done
$ grep -C1 --group-separator="+++++++++" 'hello' a
hello
this is me
+++++++++
something else
hello hello
bye
Aprendi em Usando a linha vazia como contexto "separador de grupo" para grep como ter apenas uma linha vazia, dizendo --group-separator=""
.
No entanto, e se eu quiser ter duas linhas vazias? Eu tentei dizer, --group-separator="\n\n"
mas recebo literal \n
s:
$ grep -C1 --group-separator="\n\n" 'hello' a
hello
this is me
\n\n
something else
hello hello
bye
Outras coisas como --group-separator="\nhello\n"
também não funcionaram.
printf
ouecho
. No seu caso,grep -C1 --group-separator=$'hello\nfedorqui' 'hello' a
é equivalente.