Многострочный sed
Как известно, sed
обрабатывает вход построчно. Если надо заменить многострочный паттерн, то можно воспользоваться флагом -z
, который указывает, что конец строки теперь нуль-терминатор \0
, а не обычный \n
. Например,
echo -e "line1\n\nline2\n\n\nline3" | sed -z 's/\n\n*/\n/g'
выведет
line1
line2
line3
Но работает это только для GNU sed
. Маковский такое не поддерживает, и подключить там многострочную обработку — это какая-то магия (которую я даже не буду пытаться запоминать и пробовать).
Комментарии