我正在尝试显示仅包含两个单词的5个最常见的行 到目前为止我所拥有的是:
grep '^[a-zA-Z]+ [a-zA-Z]+' text.txt | sort |uniq -c | sort -rn | head -n 5
谢谢
问题是代码的第一部分是返回有两个以上单词的行:
答案 0 :(得分:4)
您需要锚定正则表达式,为行开头添加^
,为行结尾添加$
,并添加\+
量词以在每个单词中启用多个字母:
grep '^[a-zA-Z]\+ [a-zA-Z]\+$'
答案 1 :(得分:0)
你非常接近。
试试这个:
sort text.txt | uniq -c | sort -m | egrep "^[ \t]* [0-9]+ [^ ]* [^ ]*$" | sort -n
对文件进行排序。 计算独特的线条。 对输出进行排序。 最后,找到3列的行。
我的输出看起来像这样:
$ sort text.txt | uniq -c | sort -m | egrep "^[ \t]* [0-9]+ [^ ]* [^ ]*$" | sort -n 16 wE1 wE2 17 wD1 wD2 18 wC1 wC2 19 wB1 wB2 20 wA1 wA2
干杯。