Sed 将文本文件Cygwin中的lf替换为cr-lf

Sed 将文本文件Cygwin中的lf替换为cr-lf,sed,cygwin,newline,lf,Sed,Cygwin,Newline,Lf,我有一个Cygwin脚本,可以将内容输出到文件中。我唯一的问题是它总是使用\n“lf”行结尾,而不是\r\n“cr-lf”。我想替换它们,或者让cygwin始终输出\r\n行结尾 我在脚本中尝试了以下两个命令,但均无效 unix2dos d:/temp.txt sed -i -e 's/\n/\r\n/g' d:/temp.txt 您的unix2dos呼叫应该可以工作。你有什么错误吗 Cygwin安装程序有一个选择默认行结束约定(DOS或Unix)的选项,尽管它可能只在新安装期间显示——我不记

我有一个Cygwin脚本,可以将内容输出到文件中。我唯一的问题是它总是使用\n“lf”行结尾,而不是\r\n“cr-lf”。我想替换它们,或者让cygwin始终输出\r\n行结尾

我在脚本中尝试了以下两个命令,但均无效

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

您的
unix2dos
呼叫应该可以工作。你有什么错误吗


Cygwin安装程序有一个选择默认行结束约定(DOS或Unix)的选项,尽管它可能只在新安装期间显示——我不记得是这样的。

如果您是从Windows命令shell调用它,请使用以下命令:

unix2dos d:\temp.txt
如果您是从Cygwin、Cygwin shell脚本或类似脚本中调用它,请使用以下命令:

unix2dos /cygdrive/d/temp.txt

没有,没有错误。我甚至可以将unix2dos调用放在最后一个命令之前,而最后一个命令仍然有效。那么你是说它似乎什么都没做?如果您手动运行它呢?您应该会看到一条消息,如
dos2unix:converting file d:/temp.txt to Unix format…
——是吗?好吧,没关系。我从另一个脚本调用我的脚本,然后在外部脚本的末尾添加unix2dos,它就可以工作了。Cygwin安装程序没有这样的行结束转换选项。您是否在考虑运行旧版本Cygwin的Windows Git安装程序(或类似的安装程序)?不,我想的是旧版本的Cygwin安装程序。你说得对,当前的Cygwin安装程序已经没有这个选项了。