我正在阅读以下文字。
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
答案 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