2015-12-03 3 views
0

Я ищу через пару сотен файлов ищет следующую строку:Grep или найти, чтобы найти модель

$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

Взгляните: [Часто задаваемые вопросы о регулярных выражениях переполнения стека] (http://stackoverflow.com/a/22944075/3776858) – Cyrus

ответ

1

Изменить каждый * к .*, положить \ перед каждым $, [, ] или буквального ., и вы там!

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

Примечание: это пропустит варианты, которые охватывают несколько строк, и вообще не учитывают пробелы.

Смежные вопросы