Regex 如何grep多行直到;(分号)
我想grep以Regex 如何grep多行直到;(分号),regex,awk,grep,Regex,Awk,Grep,我想grep以printf开头的行,但是它不能在该行结束,它可以有更多带有\(反斜杠)的行。 比如说, printf("%s %s %s", \ "one more line", \ "second one", \ "third one"); 是的,我们可以使用选项-A(After),但它也可以包括无意义的行,因为它指定了输出的行数 如果你有什么好主意要解决,请告诉我。 谢谢。我不知道用grep怎么做 如果您允许使用perl等工具,则有更多选项:
printf
开头的行,但是它不能在该行结束,它可以有更多带有\
(反斜杠)的行。
比如说,
printf("%s %s %s", \
"one more line", \
"second one", \
"third one");
是的,我们可以使用选项-A
(After),但它也可以包括无意义的行,因为它指定了输出的行数
如果你有什么好主意要解决,请告诉我。
谢谢。我不知道用grep怎么做 如果您允许使用perl等工具,则有更多选项:
perl -ne 'print if /^printf/ .. /;/' input.txt
如果找到以printf
开头的行,则该行将与以下所有行一起打印,直到出现代码>已找到
或:
相同的逻辑,但是停止条件是一行不以\
结尾。我不知道用grep怎么做
$ 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");
$
如果您允许使用perl等工具,则有更多选项:
perl -ne 'print if /^printf/ .. /;/' input.txt
如果找到以printf
开头的行,则该行将与以下所有行一起打印,直到出现代码>已找到
或:
同样的逻辑,但是停止条件是一行没有以\
结尾的,谢谢你的回答。但我还有另外一个问题。如果我想以quickfix的形式打印出它的文件名和行号(就像grep对选项-nH???@windrg00未测试一样,但是应该可以使用perl-ne'print“$ARGV:$。:$”if/^printf/.!/\\$/}继续吗{close ARGV if eof'…
。谢谢你的回答。但是我还有另外一个问题。如果我想以quickfix的形式打印它的文件名和行号,该怎么办(就像grep使用选项-nH???@windrg00未测试一样,但是应该可以使用perl-ne'print“$ARGV:$。:$”if/^printf/。!/\$/}继续吗{如果eof'..关闭ARGV
。
$ 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");
$