Grep,查找包含最少 x 个单词的行

Grep,查找包含最少 x 个单词的行

有没有办法用 grep 找到所有包含至少X字?

答案1

好吧,假设单词之间用空格分隔,要找到包含 >= 5 个单词的行,请执行以下操作:

$ grep -P '\w+\s+\w+\s+\w+\s+\w+\s+\w+'

但 Grep 并不是完成这项工作的最佳工具,请尝试使用 gawk:

$ gawk 'NF>4'

Gawk 的 NF 变量保存字段数,默认情况下字段由空格定义,因此在一行文本中,每个字段都是一个单词。上面的命令将打印所有包含 4 个以上单词的行。

答案2

如果您希望行数 >= 为不同的值,请将数字“3”替换。

grep -E '^(\w+\b.){3}'

相关内容