在grep中的每个结果后添加空行

pra*_*rac 16 linux scripting grep

我的grep命令看起来像这个zgrep -B bb -A aa"pattern"*

我希望输出为:

file1:line1
file1:line2
file1:line3
file1:pattern
file1:line4
file1:line5
file1:line6
            </blank line>
file2:line1
file2:line2
file2:line3
file2:pattern
file2:line4
file2:line5
file2:line6
Run Code Online (Sandbox Code Playgroud)

问题在于,当与第一个找到的结果相对应的行和与第二个找到的结果相对应的行开始时很难区分.

请注意,虽然man grep说在相邻的匹配组之间添加了" - ".仅当在同一文件中找到多个匹配项时,它才有效.但在我的搜索中(如上所述)我正在搜索多个文件.

另请注意,在每个bb + aa + 1行之后添加一个新的空行将不起作用,因为如果文件在模式之前的行少于bb.

Mic*_*ker 17

管道grep输出通过

awk -F: '{if(f!=$1)print ""; f=$1; print $0;}'
Run Code Online (Sandbox Code Playgroud)

  • @moejoe,我想,你可以通过将其转换为“--color=always”来调用“--color”。因为默认情况下,如果您的输出不是终端,则颜色会被抑制,而当您通过管道传输到其他进程时,则不是终端。 (3认同)

jas*_*ard 14

管道|任何输出到:

sed G
Run Code Online (Sandbox Code Playgroud)

例子:

ls | sed G
Run Code Online (Sandbox Code Playgroud)

如果man sed你会看到

G 将换行符后跟保留空间的内容附加到模式空间。