使用grep查找单词

时间:2019-04-18 05:13:20

标签: shell unix grep

  

在alice.txt中找到至少包含17个单词的行。

     

提示1:要检查单词是否已结束,请查找以下内容   字符:[, ; : ’ .](请注意,列表中还有一个空格)

     

提示2:您的代码应返回13行

第一次尝试输出15个单词,而不是17个单词,并且有13行 第二次尝试不会输出任何东西,但我认为总体思路是正确的,除非我丢失了某些东西...

第一次尝试:

grep -Ein "([a-z]+[, ;:'\.]){15,}" alice.txt

第二次尝试:

grep -Ein "(\b[a-z]+\b){17,}" alice.txt

预期结果是正确的,但仅导致15个修饰符,而不是问题中要求的17个修饰符。但是,代码返回13行

1 个答案:

答案 0 :(得分:0)

这是在UNIX中使用GNU awk进行FPAT的真正方法:

awk -v FPAT='\\w+' 'NF>16'

例如:

$ echo 'foo bar, etc.' | awk -v FPAT='\\w+' '{print NF}'
3
$ echo 'foo bar, etc.' | awk -v FPAT='\\w+' 'NF>2'
foo bar, etc.
$ echo 'foo bar, etc.' | awk -v FPAT='\\w+' 'NF>3'
$