2012-02-13 4 views
0

У меня есть скрипт Cygwin, который выводит материал в файл. Моя единственная проблема в том, что она всегда использует окончание строк \ n "lf" вместо \ r \ n "cr-lf". Я хочу либо заменить их, либо просто заставить cygwin всегда выводить \ r \ n для окончаний строк.заменить lf на cr-lf в текстовом файле Cygwin

Я пробовал следующие две команды безрезультатно в сценарии.

unix2dos d:/temp.txt 
sed -i -e 's/\n/\r\n/g' d:/temp.txt 

ответ

0

Вы указываете путь к unix2dos, используя причудливую комбинацию окончаний файлов Windows и Linux.

Если вы вызываете его из командной оболочки Windows, используйте:

unix2dos d:\temp.txt 

Если вы вызываете его изнутри Cygwin или сценарий Cygwin оболочки или аналогичный, используйте этот:

unix2dos /cygdrive/d/temp.txt 
1

Ваш unix2dos звонок должен работать. Вы получаете какую-то ошибку?

У установщика Cygwin есть опция для выбора соглашения о завершении линии по умолчанию (DOS или Unix), хотя он может отображаться только во время новой установки - я не помню, как это было сделано.

+0

Нет, без ошибок. Я могу даже поставить вызов unix2dos перед последней командой, и последняя команда все еще работает. – Ian

+0

Значит, ты говоришь, что ничего не делает? Что делать, если вы запускаете его вручную? Вы должны увидеть сообщение типа «dos2unix: преобразование файла d: /temp.txt в формат Unix ...» - не так ли? – jjlin

+0

Если я запустил команду unix2dos вручную, это сработает. – Ian