如何使用awk或grep在Bash中输出比指定数目的单词更长的行

时间:2019-08-14 05:18:30

标签: awk grep

我想输出的行数超过指定的单词数,比方说5。我按如下所示使用awk,但不适用于包含非常长的句子(超过32767个字段)的文件。

awk 'NF>5' FS=" " file.txt

我尝试按照this thread的建议使用sedgrep,但是我无法根据单词数而不是字符数使它起作用。

您能帮我解决这个问题吗?预先非常感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

awk '/([^[:space:]]+[[:space:]]+){4}[^[:space:]]/' file

答案 1 :(得分:2)

grep '\([^[:space:]]\{1,\}\([[:space:]]\{1,\}\|$\)\)\{5,\}' file

或者您的grep有-E

grep -E '([^[:space:]]+([[:space:]]+|$)){5,}' file