知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

linux-模拟dos2unix命令

发布时间:2014-09-05 15:05:51作者:知识屋

linux-模拟dos2unix命令
 
虽然我不是运维工程师,但是由于学习linux和shell脚本也遇到过了一些有趣的问题,例如我们常常把window环境下的文本文件上传到linux上,由于2者结束符的不同,有时候会出现配置问题 因为linux并不认识原有window环境结束符,从而在原有结束符下重新添加结束符,我们使用 cat -v -E  test.txt 查看数据 -v 是隐藏字符 -E是 结束符显示,数据如下  www.zhishiwu.com  
395439881^M$   ^M 是window文件的结束字符在linux一种显示,$是linux文件的结束字符 
395423434^M$
395468635^M$
395436444^M$
395463623^M$  
好 下面我们替换掉window下的结束符,否则不能正常处理,我们可以采用以下几种方法处理  www.zhishiwu.com  
 
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命令是最简单的了
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜