念念不忘
必有回响

Linux替换^M字符的方法

在linux打开windows处理的数据文件,每行文本末尾都会出现^M这种字符,经常会导致数据出错,那么如何快速替换呢?

例如这个报错

-bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory

1. 使用doc2unix命令

dos2unix xxx_201706010300_001.dat

2. 使用vi的替换功能。启动vi,进入命令模式,输入以下命令:

:%s/^M$//g # 去掉行尾的^M。

:%s/^M//g # 去掉所有的^M。

:%s/^M/[ctrl-v]+[enter]/g # 将^M替换成回车。

:%s/^M/\r/g # 将^M替换成回车。

3. 使用sed命令。和vi的用法相似:

sed -e ‘s/^M/\n/g’ xxx_201706010300_001.dat > xxx_201706010300_001_tmp.dat

注意:这里的^M要使用CTRL-V Shift-M生成,而不是直接键入^M
在vim的_vimrc文件中把fileformat=unix去掉就可以了

赞(0) 打赏
未经允许不得转载:码农志 » Linux替换^M字符的方法
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏