En grep
ella puedes usar --group-separator
para escribir algo en el medio partidos de grupo.
Esto es útil para dejar en claro qué bloques tenemos, especialmente cuando usamos la -C X
opción para obtener líneas 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
Aprendí en Usar línea vacía como contexto "separador de grupos" para grep cómo tener una línea vacía, diciendo --group-separator=""
.
Sin embargo, ¿qué pasa si quiero tener dos líneas vacías? Traté de decir --group-separator="\n\n"
pero obtengo \n
s literal :
$ grep -C1 --group-separator="\n\n" 'hello' a
hello
this is me
\n\n
something else
hello hello
bye
Otras cosas como --group-separator="\nhello\n"
tampoco funcionaron.
printf
oecho
. En tu caso,grep -C1 --group-separator=$'hello\nfedorqui' 'hello' a
es equivalente.$''
suyo, sería la mejor manera de hacerlo!$'$var'
(¡incapaz de expandir / imprimir el valor de la variable si se establece entre comillas simples!) ¿verdad? mientras que"$(echo $var)"
puede funcionar.$'"$var"'
. Eso es$'
+"$var"
+'
.