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 ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.