shell脚本里的\r字符。

在windows上用notepadd++编辑一个shell脚本,死活出错,回到linux下,编辑,还是有这个\r,搜索了下,是这样的:
http://bluemood.blog.51cto.com/1142811/1030925


由于在shell处理了windows里的字符文件,导致本该输出成两行的字符串变成了一行,而第一行行首的一些字符被第二行覆盖了
这是由于windows和linux下的/r ^M 字符的区别导致,可以将异常字符都筛选掉再进行输出:如sed ‘s/[^0-9,.:A-Za-z]//g’把不符合规则的字符过滤掉
转载了下面的可以参考下:
Unix体系里,每行结尾只有“”,即“\n”;Windows体系里面,每行结尾是“”,即“\n\r”。一个直接结果是,Unix体系下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix下打开的话,在每行的结尾可能会多出一个^M符号。

好了,所以我的题目就出在被处理惩罚的文件的每行末尾都有^M符号,而这凡是是看不出来的。可以用”cat -A test.file”号令查看。是以当我想在行尾添加字符的时辰,它老是添加在行首且会覆盖掉本来行首的字符。

要把文件转换一下,有两种办法:

1.号令dos2unix test.file

2.去掉”\r” ,用号令sed -i “”s/\r//”” test.file

好了,如许处理惩罚完,就OK啦!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值