我想要以printf
开头的grep行,但它不能在该行结束,它可以有更多行\
(反斜杠)。
例如,
printf("%s %s %s", \
"one more line", \
"second one", \
"third one");
是的,我们可以使用选项-A
(之后),但它也可以包含无意义的行,因为它指定了要输出的行数。
如果你有一个好主意要解决,请告诉我。 感谢。
答案 0 :(得分:2)
我不知道用grep做的方法。
如果您允许使用perl等工具,还有更多选项:
perl -ne 'print if /^printf/ .. /;/' input.txt
如果找到以printf
开头的行,则会与所有后续行一起打印,直到找到;
。
或者:
perl -ne 'print if /^printf/ .. !/\\$/' input.txt
相同的逻辑,但停止条件是不以\
结尾的行。
答案 1 :(得分:0)
$ cat file
foo
printf("%s %s %s", \
"one more line", \
"second one", \
"third one");
bar
$
$ awk '/printf/{f=1} f; !/\\$/{f=0}' file
printf("%s %s %s", \
"one more line", \
"second one", \
"third one");
$