РЕШЕНИЕGREP SED Как я могу найти шаблон в двух строках?
Начальное решение
находку. -type f -exec sed -i ': a; N; $! ba; s/\ n // g' {} + | Grep -l "672.15687489"
Начальное сообщение:
Мне было интересно, как искать по шаблону в файле. Но в том, что шаблон натянут в две строки, и я не знаю, в какой части шаблон разделен.
Пример:
The pattern: _"672.15687489"_
Но, в файле может быть один из этих нескольких вариантов:
672.15\n687489
672.156\n87489
672.1568\n7489
672.15687\n489
...
Я не волнует, как дробится шаблон , единственное, что я хочу - это имя файла, у которого есть шаблон.
Возможный дубликат [Как найти шаблоны в нескольких строках с помощью grep?] (Http://stackoverflow.com/questions/2686147/how-to-find-patterns-across-multiple-lines-using-grep) –
Пожалуйста, опубликуйте решение как ответ на свой вопрос, а не отредактируйте вопрос. – Lundin
Если файл содержит 672x15687489 (у которого есть 'x', где вы написали' .'), вы хотите увидеть имя файла? Ваш 'grep' выберет это и любую другую строку, содержащую любой другой символ вместо'. ', Поскольку точка является метасимволом. Шансы на несоответствие невелики, так что это не очень важно, но если вы действительно хотите, чтобы точка была 4-м символом, вы должны искать ее с помощью '\ .' или' [.] ' в шаблоне 'grep'. –