Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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
Bash 仅当匹配项大于3时进行awk打印,小于3时不打印_Bash_Awk - Fatal编程技术网

Bash 仅当匹配项大于3时进行awk打印,小于3时不打印

Bash 仅当匹配项大于3时进行awk打印,小于3时不打印,bash,awk,Bash,Awk,如何使awk仅在匹配3或更多时打印,而在小于3时不打印 我不擅长awk编程。但我试过了 awk '/DEF/ {count++;print} { if ( count > 2 ) print count } ' file DEF DEF是上述命令的结果。它不应该打印,因为文件中只有一个匹配项,而不是3个或更多 模式DEF只在文件中出现过一次,但awk仍然会打印它,即使我在if语句中写到,仅当它匹配3个或更多时才打印。知道我做错了什么吗?这将打印文件中带有DEF的行数超

如何使awk仅在匹配3或更多时打印,而在小于3时不打印

我不擅长awk编程。但我试过了

    awk '/DEF/ {count++;print} { if ( count >  2 ) print count  } ' file
    DEF
DEF是上述命令的结果。它不应该打印,因为文件中只有一个匹配项,而不是3个或更多


模式DEF只在文件中出现过一次,但awk仍然会打印它,即使我在if语句中写到,仅当它匹配3个或更多时才打印。知道我做错了什么吗?

这将打印文件中带有
DEF
的行数超过2次(3次或更多):

如果一行上有两个
DEF
,则计为一行或两行
DEF

当找到两行以上的
DEF
行时,打印找到的行

awk '/DEF/ {++c;a[NR]=$0} END {if (c>2) {for (i in a) print a[i]}}' file
这将打印一行,其中包含找到的
DEF
行数以及行数

awk '/DEF/ {++c;a[NR]=$0} END {if (c>2) {print "DEF found "c" times";for (i in a) print a[i]}}' file
这将打印点击数和在中找到的行号:

awk '/DEF/ {++c;a[NR]=$0} END {if (c>2) {print "DEF found "c" times\n-----";for (i in a) {print ++t". line "i": "a[i]}}}' file
DEF found 3 times
-----
1. line 4: DEF first time
2. line 8: red DEF second time
3. line 16: DEF more

它可以工作,但只显示3的计数。它没有显示匹配项。有没有办法同时显示比赛和计数?Thanks@thegeek5当找到两个以上的
DEF
时,您想显示所有匹配的行还是仅显示这些行?查看我的更新。我想同时查看匹配的行和计数。例如,我想看到DEF和数字3或更多。这可能吗?谢谢,最后一个成功了:)。谢谢你,谢谢你,谢谢你!!!顺便说一句,我该如何标记这篇文章并给你荣誉或声誉呢?@thegeek5欢迎你。接受已解决的答案,然后单击向上箭头。
awk '/DEF/ {++c;a[NR]=$0} END {if (c>2) {print "DEF found "c" times\n-----";for (i in a) {print ++t". line "i": "a[i]}}}' file
DEF found 3 times
-----
1. line 4: DEF first time
2. line 8: red DEF second time
3. line 16: DEF more