Как я могу заставить grep использовать CRLF (и не LF) как новая строка?

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

1
задан 03.09.2010, 00:54

1 ответ

Я не вижу способа сделать то использование просто 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'

Последний предполагает, что Ваш файл уже не содержит NULs.

2
ответ дан 12.12.2019, 13:11

Теги

Похожие вопросы