Вы не можете делать оценки с помощью grep, поэтому эти примеры потребуют дополнительной логики.Другие примеры можно решить с помощью оператора or
и квалификаторов?, * И +.Вот пара примеров нужных вам регулярных выражений:
wesbailey@feynman:~/tmp> cat file.txt
apple strudel
apple other txt
apple macintosh other text
macintosh other txt
other text strudel
Fnd строк, которые содержат хотя бы одно из двух слов:
wesbailey@feynman:~/tmp> grep -E 'apple|strudel' file.txt
apple strudel
apple other txt
apple macintosh other text
other text strudel
Поиск строк, содержащих оба слова:
wesbailey@feynman:~/tmp> grep -E '(apple.*macintosh)|(macintosh.*apple)' file.txt
apple macintosh other text
Поиск строк, содержащих слово «яблоко», но не «macintosh»:
wesbailey@feynman:~/tmp> grep -E 'apple' file.txt | grep -v 'macintosh'
apple strudel
apple other txt
Поиск строк, содержащих точную фразу «некоторые слова»
grep '"some words"' file.txt
Надеюсь, это поможет