Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 在grep搜索后显示n行_Shell_Awk_Grep_Find - Fatal编程技术网

Shell 在grep搜索后显示n行

Shell 在grep搜索后显示n行,shell,awk,grep,find,Shell,Awk,Grep,Find,在搜索文件内容中某个模式的文件列表后,我试图显示这5行。我在MacOSX外壳上运行这个 我试过这么做 grep -A5 'pattern' *.* 这里我得到以下输出 filename line1 filename line2 filename line3 filename line4 filename line5 但是,我只想将行作为输出,而不是文件名。我的理想输出是 文件名 line1 line2 line3 line4 line5 我也尝试了以下方法,但都不起作用 grep -l '

在搜索文件内容中某个模式的文件列表后,我试图显示这5行。我在MacOSX外壳上运行这个

我试过这么做

grep -A5 'pattern' *.*
这里我得到以下输出

filename
line1
filename
line2
filename
line3
filename
line4
filename
line5
但是,我只想将行作为输出,而不是文件名。我的理想输出是 文件名

line1
line2
line3
line4
line5
我也尝试了以下方法,但都不起作用

grep -l 'pattern' *.* | head -5
head -5 < grep -l 'pattern' *.*
grep-l“模式”*.*head-5
头-5

您知道如何在shell上执行此操作吗?

如果您希望
grep
在有多个输入文件时从其输出中省略文件名,那么您应该使用
-h
选项(或者如果您的grep恰好是GNU风格的,您可以使用
--no filename


另外,
-A5
选项在每个匹配周围提供(最多)5行上下文。如果这是您想要的,那么就很好了,但看起来您可能希望将
grep
限制为5个匹配项。这将是
-m5
,每个文件最多5个,或者如果您总共只想要5个,则将其导入
头-5

这应该适合您:

cat *.* | grep -A 5 'pattern'

但是,请澄清您是否只想显示(1)总共5行,(2)每个文件5行,或(3)每个模式匹配后5行。我的答案与最后一个答案相符,即每个模式匹配后5行。

您能显示您的输入文件吗?这似乎就是文件的实际内容。@pogo:只有当我们知道您的输入数据是什么时,问题才会清楚。