Bash中的多行递归grep

时间:2017-06-26 15:30:59

标签: bash grep

有没有办法让这个正则表达式在bash中运行?:

INSERT(\n|[^;])*;

这将允许我在文件中找到任何INSERT sql语句。 但是,对于“ grep ”,如果它们不在一行上,则无法找到它们,而“ pcregrep ”将不会批准[^;]部分。< / p>

还有其他“ grep ”或者其他正则表达式吗?我在其他主题中搜索过,但我无法找到答案。

提前感谢您的贡献或与答案的链接。

1 个答案:

答案 0 :(得分:0)

你可以使用awk作为@Barmar说。

如上所述提取所有INSERT的简单命令是:

 awk '/INSERT/,/;/' filename

这匹配从INSERT到第一个后续分号的所有文本。 这假设您需要区分大小写的搜索,并确保所有INSERTS都以正确的分号终止。