Команда Linux - Найти слова длиной 3 или 8 букв - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть текстовый файл со многими словами.Мне нужно найти слова из 3 букв в длину или 8 букв в длину.я могу найти 3 и 8 буквенных слов отдельно с помощью команд ниже.как объединить результаты в один вывод?

grep -E '^.{3}$' words | wc -w

grep -E '^.{8}$' words | wc -w

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Если вы хотите считать 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
0 голосов
/ 25 февраля 2019

Другой способ это:

grep -E '^(.{3}|.{8})$'

И соединить вместе другие пути:

grep -E '^.{3}$|^.{8}$'
grep -E -e '^.{3}$' -e '^.{8}$'

Проверьте это: Чередование с символом вертикальной черты или трубы

Пример:

$ 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...