LINUX.ORG.RU

Проблема с регэкспами.


0

0
Не работают почему то многострочные регэкспы начинающиеся со \n.
Например хочу заменить два переноса строки на один.
perl -p -i -e 's/\n\n/\n/mg' file
Ноль реакции...
★★★
Вроде перл по умолчанию разбивает входной файл на записи по символу \n и уже эти записи гонит через 's///', поэтому '\n\n' не совпадет ни с одной записью. Можно указать опцию '-0' что приведет к тому, что все файл будет одной записью, и тогда '\n\n' будет заменяться на что угодоно.

А правильнее, ИМХО, отказаться от regexp'ов для данной задачи...

mky ★★★★★
()
Ответ на: комментарий от Svoloch
> Почему /m то бишь multiline не работает не понятно

Потому что разбиение на строки происходит раньше и на вход этому регэкспу подаётся по одной строке.

anonymous
()
А не проще?
tr -s '\n'
io ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.