Я пытаюсь заменить возврат каретки в конец предыдущей строки. ^ M - возврат каретки.sed: совпадающий шаблон до конца предыдущей строки
Пример:
hello
hello 1^M
hello 2^M
hello 3^M
hello 4^M
hello 5^M
hello 6
Что мне нужно:
hello
hello 1 hello 2 hello 3 hello 4 hello 5
hello 6
Я хочу, чтобы все^M заменить на конец предыдущей строки без^М. Есть ли у вас какие-либо идеи. Как его заменить?
Это моя команда:
sed -i 's/^M//g' filtest.txt
sed -i ':a;N;$!ba;s/\n//g' filtest.txt
Результат:
hellohello 1hello 2hello 3hello 4hello 5hello 6
Спасибо за помогает! :)
Как вы должны сказать от входа, что вы хотите здесь? Или вам нужно жестко закодировать это, потому что нет способа рассказать? –
Почему вы ожидаете замены только первого '^ M'? – hek2mgl
Что алгоритм, который диктует, что '\ r \ n' в конце' hello5' должен только удалить его '\ r', и это' \ n' остается, в то время как предыдущие 4 строки получают свой полный '\ r \ n' удален? –