grep 查找所有单词长度大于 10 个字符的行

grep 查找所有单词长度大于 10 个字符的行

我需要一个grep命令来查找仅包含长度大于 10 的单词的所有行。

这是grep我为了查找大于 10 个字符的单词而写的。

grep -E '(\w{11,})' input

我将如何操作此命令以包含该行中的每个单词?

答案1

您的条件可能更容易用反证来表达:不包括所有单词长度> 10的行,而是排除那些长度<= 10的单词的行。由于 grep 支持否定和单词匹配,因此可以写成如,说:

grep -vwE '\w{1,10}'
  • -v否定比赛
  • -w意味着正则表达式应该匹配整个单词

正如 Sundeep 所指出的,我们应该{1,10}避免匹配空字符串(以及每一行)。

相关内容