使用grep将整行打印到LINE的END

时间:2015-04-30 00:21:21

标签: regex bash shell grep

我正在阅读以下文字。

TRACE(FOO, CAT,
    INFO, "Hello World")

如果我使用grep -r "FOO" file.txt,grep只打印第一行。我需要整条线来匹配。我只有FOO作为搜索键。我想用grep这样做。

我尝试了grep --after-context=1,但是在我的测试为TRACE(FOO, CAT, INFO, "HELLO WORLD"的情况下(即CAT之后没有换行),它也不必要地显示下一行。

请你帮我做一下。

CHID

1 个答案:

答案 0 :(得分:2)

sed -n -e '/FOO.*)/p' -e '/FOO[^)]*$/{p;n;p}' x.txt

如果sed也可以接受。并-n安静输出,p打印行,n转到下一行。

合并2行,

 sed -n -e '/FOO.*)/p' -e '/FOO[^)]*$/{N;s/\n//p;n;p}' x.txt