[Comm] Замена концов строк

Dmitry Azhichakov =?iso-8859-1?q?admitry_=CE=C1_rol=2Eru?=
Пт Дек 26 10:19:37 MSK 2003


	Доброго времени суток.

On Wed, Dec 24, 2003 at 08:59:45PM +0300, Vitaly Lipatov wrote:
> On 24 Декабрь 2003 19:59, Igor Homyakov wrote:
> > $ cat dos2unix
> > tr -d "\r"
> Ну это понятно...
> 
> > $ cat unix2dos
> > awk '{ printf "%s\r\n", $0 }'
> > ну или
> > sed s/\r/\r\n/
> Вот не работает ни тот, ни тот вариант.
> Хорошо вы навели меня на мысль поискать dos2unix и я нашёл пакет 
> hd2u, в котором таки есть программа, в совершенстве владеющая 
> переводом. А вот почему sed не работает, я до сих пор не 
> понимаю.

Ну, во-первых, если такими regexp'ами писать, то 's/\n/\r\n/' :)
Во-вторых, в sed это тоже работать не будет. sed держит строки в pattern
space без \n. Поэтому делается это так:

sed -e 's/$/\r/'

Но это небезопасно, т.к. если файл уже с концами строк CRLF, то
получится CRCRLF. Безопасный вариант такой:

sed -e 's/\r\?$/\r/'

В обратную сторону, соответственно:

sed -e 's/\r$//'

-- 
С уважением,
	Димыч



Подробная информация о списке рассылки community