Поиск строки с переносом

У меня есть логи, в которых хранится ID объекта, но он в разных меcтах название ID переносится на новую строку

Например:

adfksdhg123a3213
2ejj

adfksdhg
123a32132ejj

Как мне найти ID adfksdhg123a32132ejj в файле игнорируя перенос строки?


Ответы (1 шт):

Автор решения: Vadik

Предположим, нам нужно найти строку foo в файле input.txt без учета возможных переносов в файле.

С помощью sed сформируем регулярное выражение, добавим после каждого символа строки foo опциональный перенос \n?:

echo foo | sed 's/./\0\\n?/g'

На выходе получим:

f\n?o\n?o\n?

Теперь подставляем полученное регулярное выражение в grep:

grep -zP "f\n?o\n?o\n?" input.txt

Одной командой:

grep -zP "$(echo foo | sed 's/./\0\\n?/g')" input.txt
→ Ссылка