(Чтобы сделать приведенные ниже примеры более понятными и менее двусмысленными, я буду использовать od
util .)
Невозможно сделать, например, флаг. Могу поспорить, что лучшее решение - это то, которое цитировалось в предыдущих ответах: tr
. Если у вас есть файл, подобный приведенному ниже:
$ od -xc slashr.txt
0000000 6261 0d63 6564 0d66
a b c \r d e f \r
0000010
Существуют различные способы использования tr
; нам нужно было передать два параметра - два разных символа - и tr
заменит первый параметр вторым. Отправив содержимое файла в качестве ввода для tr '\r' '\n'
, мы получили следующий результат:
$ tr '\r' '\n' < slashr.txt | od -xc
0000000 6261 0a63 6564 0a66
a b c \n d e f \n
0000010
Отлично! Теперь мы можем использовать sed
:
$ tr '\r' '\n' < slashr.txt | sed 's/^./#/'
#bc
#ef
$ tr '\r' '\n' < slashr.txt | sed 's/^./#/' | od -xc
0000000 6223 0a63 6523 0a66
# b c \n # e f \n
0000010
Но я полагаю, вам нужно использовать \r
в качестве разделителя строк, верно? В этом случае просто используйте tr '\n' '\r'
для обратного преобразования:
$ tr '\r' '\n' < slashr.txt | sed 's/^./#/' | tr '\n' '\r' | od -xc
0000000 6223 0d63 6523 0d66
# b c \r # e f \r
0000010