翼度科技»论坛 云主机 LINUX 查看内容

CRLF 文件从Window转到Unix中换行符的转换问题解决

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
1.背景知识

CRLF用来表示文本换行的方式 ,CR是回车的意思,对应 \r ;LF 是换行的意思,对应 \n

  • Windows 换行符是 \r\n
  • Unix 换行是 \n
如果一个将要在Linux服务器上使用的文件,比如某个配置文件,在windows电脑打开,编辑过,那么文件每一行末尾会多有\r 。直接在Linux中使用可能会报错。
2.检验方法

用 sed -n l 查看会发现文件末尾是否多了有 ^M。
3.解决方法

3.1 ubuntu安装 tofrodos

tofrodos可以对两种格式的文件的换行符进行互转
  1. sudo apt-get install tofrodos
  2. todos file1 # unix2dos
  3. fromdos file2 # dos2unix
  4. # 或者
  5. sed 's/^M//' file
复制代码
3.2 linxu安装dos2unix
  1. yum install dos2unix -y
  2. doc2unix file
复制代码
3.3 vim设置编码格式/全局替换

直接vim打开,使用 :set ff
或者替换\r 为空 利用vim将 ^M 替换 此处 ^M 使用 Ctril + V + M 来输入
:%s/^M//g # 不行就用 :%s/\r//
3.4 sed替换

sed -i 's/^M//' file
如果以上方法有用,希望能得到您的一键三联

来源:https://www.cnblogs.com/it-bt/p/17073579.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具