我有以下一段文字。
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 后没有换行符),它也不必要地显示下一行。
你能帮我做吗?
奇德
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