DOS与Linux的换行字符
2015-06-09 10:43
639 查看
一、vim打开window下的文件出现 ^M
首先理解,dos(windows)下建立的文件的换行是 ^M\$ (CRLF) ,而在Linux下面,仅仅是以 \$ (LF) 来做断行符号;(^M\$ 其实没有 \ ,只不过,编辑器默认会使其变为特殊符号,所以加了反斜线)
这就造成了,vim打开dos文件时,每行末尾出现^M的符号
而这个符号影响很大,如果是一个 shell script 脚本,可造成 “程序无法执行”的状态
那么如何解决呢?
二、避免每行出现^M以及解决办法
1. 可设置所使用的编辑器的断行如 sublime text 中,选项:"default_line_ending": "system",
表示,随系统的不同而变化,windows下就是CRLF,unix就是LF
2. 使用命令替换符号
vim命令行状态下输入:
:%s/[Ctrl-v][Enter]//g
Ctrl-v的作用是,使得接着输入的回车键被认为是一个特殊字符,而不是vim命令的结束
3. 使用dos2unix命令
如:dos2unix -k -n test.txt test.new.txt
-k ,表示 保留该文件原本的 mtime 时间格式(不更新文件上次内容经过修订的时间)
-n ,表示 保留原本文件,将转换后的内容输出到新文件中
注意:-k -n 不能连写成 -kn ,否则执行不成功;
当然还有相应的 unix2dos 命令,用于两者的相互转换
具体 可通过 dos2unix --help查看相关设置
相关文章推荐
- linux 防火墙开关
- linux vi 命令使用
- linux select函数详解
- Linux小技巧记录
- Linux chkconfig命令入门
- CentOS查看系统信息命令和方法
- linux tar.gz zip 解压缩 压缩命令
- 在Linux 中 echo命令 让字体带颜色\033[0-7;30-37;40-47;m string \033[0m
- Linux-管理文件权限和所有权
- Ubuntu Qt arm-linux-androideabi-gcc: Command not found
- Install Activemq Cluster on CentOS 6.6
- 每天一个linux命令(52):ifconfig命令
- Linux升级C基本运行库CLIBC
- 11款最棒的Linux数据恢复工具
- ubuntu Linux software install unable to locate package xxx
- linux创建磁盘分区的脚本文件(创建两个512M和2G的主分区)
- Linux下操作问题解决的小集
- Linux Watchdog 脚本
- linux程序设计——linux环境(第四章)
- CentOS 7.0 安装go 1.3.1