在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去掉就可以了