开发界
首页 移动开发 在线交易 IT笔记 网络技术 操作系统 企业架构 数据库 考试认证 IT培训 开源软件 数据存储 行业资讯
大家都在看:java   开发   C#   oracle   mysql   android   web开发   学习   sqlserver   linux   asp   php   ajax   javascript   css   html
linux-模拟dos2unix命令
2013-03-06 16:01:19 来源:开发界 作者:admin 栏目:linux学习 责任编辑:admin
[导读]linux-模拟dos2unix命令

虽然我不是运维工程师,但是由于学习linux和shell脚本也遇到过了一些有趣的问题,例如我们常常把window环境下的文本文件上传到linux上,由于2者结束符的不同,有时候会出现配置问题 因为linux并不认识原有window环境结束符,从而在原有结束符下重新添加结束符,我们使用 cat -v -E  test.txt 查看数据 -v 是隐藏字符 -E是 结束符显示,数据如下
395439881^M$   ^M 是window文件的结束字符在linux一种显示,$是linux文件的结束字符
395423434^M$
395468635^M$
395436444^M$
395463623^M$ 

好 下面我们替换掉window下的结束符,否则不能正常处理,我们可以采用以下几种方法处理
 
cat test.txt | tr -d '\r' | cat -v  我们使用cat -v查看一下是否已经成功替换
 
395439881
395423434
395468635
395436444
395463623

如果隐藏字符不是\r怎么办
 
cat -v test.txt | sed  's:\(\^\w\+\)::'   |  cat -v 
 
395439881
395423434
395468635
395436444
395463623这里注意cat -v 可能将隐藏字符以特殊方式显示 因此通过管道传递时可以直接替换掉,

这里cat -v后使用\r是无法代表window的结束符了,转化成……M

cat  test.txt | sed  's:\r::'   |  cat -v 

 

如果有dos2unix命令是最简单的了

版权所有:转载请注明出处!
分享到:
上一篇Linux神器find学习笔记 下一篇vi统计某个匹配出现的次数
您可能还喜欢
今日最新资讯 最新推荐信息
考试认证 更多
开发技术 更多
移动开发 更多

关于开发界 | 合作伙伴 | 联系我们 | 友情链接 | 版权声明 | 网站制作 | 网站地图 | 加入收藏 | 设为首页

Copyright@2012-2016 开发界 京ICP备12027873号