怎么去掉linux下TXT文件^M???

产品发我一个excel,需求是用excel的手机号码去1000万文本里面进行匹配,找出对应的手机号码以及等级等字段,当传上linux服务器问题出现了,原本在window以每行结束的格式,全部乱了,而且出现了一个诡异的

1
2
3
4

解决方法如下:

1.使用dos2unix工具,默认都会自带,没有的话可以yum安装

$ dos2unix myfile.txt

1
2
3
4

2.vi修改文件(推荐使用)</br>
>1.windows下创建的并编辑的,文件中的换行符都说'\r\n',vi打开识别该文件是dos格式,此时不会显示出诡异的M,可以在编辑模式下:set fileformat=unix然后wq即可</br>
>2. 如果文件中的换行符有些是'\n\r',有些是\n',在vi显示文件时,'\r\n'全变成了M,而且全在一行,这种情况可以使用替换命令

“:%s/^M//g” 替换所有的^M

“:%s/^M$//g” 替换行尾的^M

“:%s/^M/\r/g” 将^M替换成回车

特别注意,^M的输入方式是Ctrl+v,Ctrl+m

1
3.sed命令修改

$ sed -e ‘s/^M/\n/g’ myfile.txt
^M = Ctrl+v,Ctrl+m(注意输入)

1
2

4.tr(它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符)

cat filename |tr -d ‘/r’ > newfile

^M 可用 /r 代替
`
5.还有一些解决的思路,可以通过判断length,二进制比较判断文件的一致性(od)

-------------本文结束感谢您的阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!