как я могу захватить все строки из текстового файла, которые начинаются с символа "X" или содержат слово "foo"?
Это работает:
cat text | grep '^@' # begins with @
, но я пытался:
cat text | grep '^@|[foo]'
и вариаций, но нигде не могу найти правильный синтаксис.как это можно сделать?
спасибо.
Если ваша реализация grep не соответствует POSIX, вы можете использовать egrep вместо grep:
egrep '^@|foo' text
cat text | grep '^@|foo'
делает это. [foo] соответствует одному символу, который является либо f, либо o.
[foo]
f
o
Если вы не хотите сопоставлять части слов, например, foo в foobar, используйте привязки к словам:
foo
foobar
cat text | grep '^@|\bfoo\b'
contains the word "foo" равно: (.*foo.*), поэтому ваше регулярное выражение станет:
contains the word "foo"
(.*foo.*)
cat yourFilePath | grep -E '^@|(.*foo.*)'