In können grep
Sie verwenden --group-separator
, um etwas zwischen Gruppenspielen zu schreiben.
Dies ist praktisch, um zu verdeutlichen, welche Blöcke wir haben, insbesondere wenn Sie die -C X
Option zum Abrufen von Kontextzeilen verwenden.
$ 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
Ich habe in Verwenden einer leeren Zeile als Kontext "Gruppentrennzeichen" für grep gelernt, wie man nur eine leere Zeile hat, indem ich sagte --group-separator=""
.
Was ist jedoch, wenn ich zwei leere Zeilen haben möchte? Ich habe versucht zu sagen, --group-separator="\n\n"
aber ich bekomme wörtliche \n
s:
$ grep -C1 --group-separator="\n\n" 'hello' a
hello
this is me
\n\n
something else
hello hello
bye
Andere Dinge wie haben --group-separator="\nhello\n"
auch nicht funktioniert.
printf
oder zu verwendenecho
. In Ihrem Fallgrep -C1 --group-separator=$'hello\nfedorqui' 'hello' a
ist gleichwertig.$''
hätte, dass Ihre der gute Weg wäre!$'$var'
(Wert der Variablen kann nicht erweitert / gedruckt werden, wenn er in einfachen Anführungszeichen gesetzt wird!), oder? während"$(echo $var)"
kann funktionieren.$'"$var"'
. Das ist$'
+"$var"
+'
.