1

Мне нужно выполнить поиск в файле, где строки не только заканчиваются CRLF, но и могут содержать несколько LF в каждой строке. Как я могу заставить grep игнорировать LF, если перед ними нет CR? К вашему сведению, я использую OS X, поэтому было бы полезно иметь инструкции BSD grep.

2 ответа2

2

Я не вижу способа сделать это с помощью просто grep , но вы можете использовать perl , например,

perl -e '$/="\r\n";' -ne 'print if /your_pattern/;' your_filename

или вы можете использовать tr в качестве фильтра вокруг grep , например,

tr '\n\r' '\0\n' < your_filename | grep -a your_pattern | tr '\0\n' '\n\r'

Последнее предполагает, что ваш файл еще не содержит NUL.

0

Я думаю, что вам нужно использовать вместо awk.
В awk есть переменная RS (Records Seperator) для изменения ограничителя строки

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .