如何从文本文件中捕获以字符“X”开头或包含单词“foo”的所有行?
这有效:
cat text | grep '^@' # begins with @
但我试过了:
cat text | grep '^@|[foo]'
和变体,但无法在任何地方找到正确的语法。怎么办呢?
感谢。
答案 0 :(得分:10)
如果您的grep实现不符合POSIX,则可以使用egrep而不是grep:
egrep '^@|foo' text
答案 1 :(得分:3)
cat text | grep '^@|foo'
这样做。 [foo]
匹配一个f
或o
的字符。
如果您不想匹配foo
中foobar
等部分字词,请使用字边界锚:
cat text | grep '^@|\bfoo\b'
答案 2 :(得分:1)
contains the word "foo"
是:(.*foo.*)
所以你的正则表达式会变成:
cat yourFilePath | grep -E '^@|(.*foo.*)'