我有很长的日志文件,可以让grep只搜索前10行吗?
发布于 2012-01-07 02:03:53
管子的魔力;
head -10 log.txt | grep <whatever>
发布于 2013-10-31 03:40:27
对于在谷歌上找到它的人来说,我需要搜索多个文件的前n
行,但只打印匹配的文件名。我用过
gawk 'FNR>10 {nextfile} /pattern/ { print FILENAME ; nextfile }' filenames
一旦看到10行,FNR..nextfile
就会停止处理文件。只要给定文件中出现第一个匹配项,//..{}
就会打印文件名并继续执行操作。要引用文件名以便于其他程序使用,请使用
gawk 'FNR>10 {nextfile} /pattern/ { print "\"" FILENAME "\"" ; nextfile }' filenames
发布于 2012-01-07 02:09:38
或者在没有|
的情况下对单个进程使用awk
awk '/your_regexp/ && NR < 11' INPUTFILE
在每一行上,如果your_regexp
匹配,并且记录(行数)少于11,它将执行默认操作(即打印输入行)。
或者使用sed
sed -n '/your_regexp/p;10q' INPUTFILE
检查regexp并打印该行(-n
表示不打印输入,否则为默认值),然后在第10行之后退出。
https://stackoverflow.com/questions/8762274
复制相似问题