我正在浏览几百个文件,寻找以下字符串:
$v1=Name($v2[x1].$v3[x2].$v4[x3].$*v5[x4].)
grep -HREln "(x1)" . > foo
find . -type f | xargs grep -l 'x1' > foo
但是变量x1在文件之间变化。 我想做的是搜索模式:
$*=Name($*[*].$*[*].$*[*].$**[*].)
无论变量或空格如何。 任何帮助都会很棒。
答案 0 :(得分:1)
将每*
更改为.*
,将\
置于每$
,[
,]
或文字.
之前,你在那儿!
find . -type f |
xargs grep -l 'Name(\$.*\[.*\]\.\$.*\[.*\]\.\$.*\[.*\]\.\$.*\[.*\]\.)' > foo
注意:这会遗漏跨越多行的变体,并且根本不考虑空格。