需要多行搜索的regex(Grep)我在运行一个grep若要查找任何*.sql文件,请执行以下操作:select后面跟着这个词customerName后面跟着这个词from..此SELECT语句可以跨越多行,并可以包含制表符和换行符。我尝试了以下几种变体:$ grep -liIr --include="*.sql" --exclude-dir="\.svn*" --regexp="select[a-zA-Z0-
9+\n\r]*customerName[a-zA-Z0-9+\n\r]*from"然而,这只是永无止境。有人能帮我掌握正确的语法吗?
3 回答
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
$ grep -Pzo "(?s)^(\s*)\N*main.*?{.*?^\1}" *.c
-P
-z
-o
-z
(?s)
PCRE_DOTALL
.
\N
PCRE_DOTALL
.*?
.
^
\1
\s*
*.c
慕勒3428872
TA贡献1848条经验 获得超6个赞
grep
$/ = "\n\n"; # Paragraphswhile (<>){ if ($_ =~ m/SELECT.*customerName.*FROM/mi) { printf file name go to next file }}
- 3 回答
- 0 关注
- 691 浏览
添加回答
举报
0/150
提交
取消