我有一个包含很多单词的文本文件。我需要找到长度为3个字母或长度为8个字母的单词。我可以使用以下命令分别找到3和8个字母的单词。如何将结果合并为一个输出?
grep -E '^.{3}$' words | wc -w
grep -E '^.{8}$' words | wc -w
答案 0 :(得分:4)
另一种方法是:
grep -E '^(.{3}|.{8})$'
并结合其他方式:
grep -E '^.{3}$|^.{8}$'
grep -E -e '^.{3}$' -e '^.{8}$'
检查以下内容:Alternation with The Vertical Bar or Pipe Symbol
一个例子:
$ cat file
orange
banana
who
what
we
eat
buzzkill
find
$ grep -E '^(.{3}|.{8})$' file
who
eat
buzzkill
$ grep -E '^.{3}$|^.{8}$' file
who
eat
buzzkill
$ grep -E -e '^.{3}$' -e '^.{8}$' file
who
eat
buzzkill
答案 1 :(得分:3)
如果要计数 3个字母和8个字母的单词,请使用:
grep -Ewc '.{3}|.{8}' file
如果要查看 3个字母和8个字母的单词,请使用:
grep -Ew '.{3}|.{8}' file
因此,如果您的文件包含:
a
be
sea
deee
goldfish
somethinglong
您将获得:
grep -Ewc '.{3}|.{8}' file
2
或:
grep -Ew '.{3}|.{8}' file
sea
goldfish