Я пытаюсь использовать sed
однострочник для удаления завершающих символов новой строки, используя один из удобные однострочники sed:
sed --in-place -e :a -e '/^\n*$/{$d;N;ba}'
Он работает для новых строк в стиле UNIX, но не для новых строк в стиле DOS. Несмотря на то, что я не мог точно разобраться в sed
синтаксисе сценариев и правилах сопоставления, я попробовал следующее:
sed --binary --in-place -e :a -e '/^\(\r\?\n\)*$/{$d;N;ba}'
но это не помогло, и я действительно не знаю почему.
Я действительно не хочу использовать Perl и т. Д., Я хочу придерживаться более «основных» утилит. Итак, есть ли поблизости какие-нибудь sed
гуру? Буду очень признателен за вашу помощь. Я использую дистрибутив Cygwin sed
.
Спасибо.
В частности, мне нужен этот файл (распечатанный с использованием cat -A
):
1^M$
^M$
^M$
стать этим:
1$