Как grep -w для 2 слов, которые могут встречаться или не встречаться в одной строке?

Мне понадобится комбинация двух команд, есть ли способ просто выполнить grep один раз? Поскольку файл может быть очень большим,> 1 ГБ

$ grep -w 'word1' infile
$ grep -w 'word2' infile

Мне не нужны они в одной строке, например grep для 2 слова, находящиеся в одной строке. Мне просто нужно избежать избыточной итерации всего файла


person alvas    schedule 08.07.2013    source источник


Ответы (1)


использовать это:

grep -E -w "word1|word2" infile

or

egrep -w "word1|word2" infile

Он будет соответствовать строкам, соответствующим слову1, слову2 или обоим.


Из man grep:

   -E, --extended-regexp
          Interpret PATTERN as an extended regular expression (ERE, see below).

Контрольная работа

$ cat file
The fish [ate] the bird.
[This is some] text.
Here is a number [1001] and another [1201].
$ grep -E -w "is|number" file
[This is some] text.
Here is a number [1001] and another [1201].
person fedorqui 'SO stop harming'    schedule 08.07.2013