windows与unix的/r/n转换问题
windows下换行符是/r/n,unix下是/n,为什么对于一些代码,例如unix上存储的c程序,即使在windows下用ue按照dos模式打开,保存,最后还是可以用。...
windows下换行符是/r/n,unix下是/n,为什么对于一些代码,例如unix上存储的c程序,即使在windows下用ue按照dos模式打开,保存,最后还是可以用。但对于一些sh脚本或是配置文件,在windows下用ue按照dos模式打开,保存,再回到unix下执行就有错误了,用vi看到每行结束多了一个^M,这个应该是windows下的/r?
为什么使用以下两种方式无法完成dos到unix结束符的替换:
1、用这个命令删除文件里的^M:tr -d "\015" newfile
这里为什么是015,应该是013?013是^M。
2、用VI打开文件,用:set ff=unix,来强制转换成Unix格式,保存退出再运行。
谢谢! 展开
为什么使用以下两种方式无法完成dos到unix结束符的替换:
1、用这个命令删除文件里的^M:tr -d "\015" newfile
这里为什么是015,应该是013?013是^M。
2、用VI打开文件,用:set ff=unix,来强制转换成Unix格式,保存退出再运行。
谢谢! 展开
4个回答
展开全部
ue提示是否转换到DOS格式时,强烈建议选择“否”。
如果已经转换为DOS格式,到unix下建议使用dos2unix工具再转换为unix格式(即去除行末的^M)。
FTP方式在Windows与unix间传递文件的时候,也要注意使用binary模式,不要用text模式。
——————————————————————————————
如果不用 dos2unix 和 unix2dos 命令,也还有其他转换方法。如下。
UNIX 文本移至 Windows 系统所需的格式转换:
sed -e 's/$/\r/' myunix.txt > mydos.txt
DOS/Windows 格式的文本转换成 UNIX 格式:
sed -e 's/.$//' mydos.txt > myunix.txt
如果已经转换为DOS格式,到unix下建议使用dos2unix工具再转换为unix格式(即去除行末的^M)。
FTP方式在Windows与unix间传递文件的时候,也要注意使用binary模式,不要用text模式。
——————————————————————————————
如果不用 dos2unix 和 unix2dos 命令,也还有其他转换方法。如下。
UNIX 文本移至 Windows 系统所需的格式转换:
sed -e 's/$/\r/' myunix.txt > mydos.txt
DOS/Windows 格式的文本转换成 UNIX 格式:
sed -e 's/.$//' mydos.txt > myunix.txt
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用sed 's/^M//g' 语句可以替换。
意思是将^M 替换掉就可以了,不过sed不能直接修改文件,需要先输出到一个临时文件在给他改个名字就可以。
即 sed 's/^M//g' >tmp.out
mv tmp.out xxx.txt
xxx.txt是你以前的文件
意思是将^M 替换掉就可以了,不过sed不能直接修改文件,需要先输出到一个临时文件在给他改个名字就可以。
即 sed 's/^M//g' >tmp.out
mv tmp.out xxx.txt
xxx.txt是你以前的文件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
tr -d '\015\032' < orig > new
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询