Grep或找到一个模式

时间:2015-12-03 17:02:06

标签: regex grep find

我正在浏览几百个文件,寻找以下字符串:

$v1=Name($v2[x1].$v3[x2].$v4[x3].$*v5[x4].)

grep -HREln "(x1)" . > foo
find . -type f | xargs grep -l 'x1' > foo

但是变量x1在文件之间变化。 我想做的是搜索模式:

$*=Name($*[*].$*[*].$*[*].$**[*].) 

无论变量或空格如何。 任何帮助都会很棒。

1 个答案:

答案 0 :(得分:1)

将每*更改为.*,将\置于每$[]或文字.之前,你在那儿!

find . -type f |
  xargs grep -l 'Name(\$.*\[.*\]\.\$.*\[.*\]\.\$.*\[.*\]\.\$.*\[.*\]\.)' > foo

注意:这会遗漏跨越多行的变体,并且根本不考虑空格。