DOS文件转换成UNIX文件格式详解
由windows平台迁移到unix系统下容易引发的问题:Linux执行脚本却提示No such file or directory
:set fileformat=unix
:w
用:set ff=unix把它强制为unix格式,也可以用sed 这样的工具来做:
1. 使用vi
vi dos_file.txt
:%s/^M//g
其中^M 必须是同时按 Ctrl+V+M ,表示回车。不是直接输入 ^M ,那没有用的, :-) 。
命令:tr -d "\015" dos_file.txt
很久以前,老式的电传打字机使用两个字符来另起新行。一个字符把滑动架移回首位 (称
为回车,),另一个字符把纸上移一行 (称为换行,)。
当计算机问世以后,存储器曾经非常昂贵。有些人就认定没必要用两个字符来表示行
尾。UNIX 开发者决定他们可以用 一个字符来表示行尾。Apple 开发者规定
了用 。开发 MS-DOS (以及微软视窗) 的那些家伙则决定沿用老式的 。
那意味着,如果你试图把一个文件从一种系统移到另一种系统,那么你就有换行符方
面的麻烦。Vim 编辑器自动识别不同文件格式,并且不劳你操心就把事情给办妥了。
选项 'fileformats' 包含各种各样的格式,Vim 会在编辑一个新文件之初尝试该选项
定义的各种格式。例如,下面这个命令告诉 Vim 先尝试用 UNIX 格式,其次,尝试
MS-DOS 格式:
辑的是本地格式文件 (你编辑的文件格式和所用系统一致),你就不会看到任何格式名。
因此在 Unix 系统上编辑一个 Unix 格式文件不会产生任何关于格式的信息。但你若编辑
一个 dos 文件,Vim 将这样通知你:
探测到的文件格式会被存入 'fileformat' 选项。执行下面这个命令可以显示你当前
使用的文件格式:
dos
mac
常发生在 Vi (和 Vim) 脚本内。
在采用 作为换行符的 Macintosh 上, 字符也有可能混在文本行中间。
结果,很难 100% 肯定一个同时包含 和 的文件究竟是 Mac 还是 Unix 格
式。所以,Vim 假设你一般不会在 Unix 上编辑一个 Mac 文件,所以干脆对这种文件格
式不作检查。果真要检查此种格式,就把 "mac" 加入 'fileformats':
末尾有个 ^M 字符。(^M 就是 )。而 Vim 的自动探测功能就避免了这个问题。莫非
你确实要按那个样子来编辑这个文件吗?那么你需要强制 Vim 忽略文件格式而使用你指
定的格式:
"++ff" 用于 'fileformat' 选项。你也可以用 "++ff=mac" 或 "++ff=dos"。
这样用法并非适用于任意选项,目前 Vim 仅仅实现了 "++ff" 和 "++enc"。用全称
"++fileformat" 和 "++encoding" 也行。
README.TXT 的 MS-DOS 文件,你要把它转换成 UNIX 格式。首先编辑这个采用 MS-DOS
格式的文件:
vim README.TXT
:write
DOS文件转换成UNIX文件格式详解的更多相关文章
- Intellij IDEA 将工程转换成maven工程 详解
1> 右键工程,点击 Add Framework Support 2> 选中 Maven,再点击 OK 3> 工程根目录自动生成 pom.xml 文件,这样 工程就支持 Ma ...
- 在linux下,去除^M,将windows格式文件(dos文件)改为unix格式文件
在Windows系统下编辑的文件,换行符回车的格式为'\r\n',在linux系统下,回车的格式为'\n',在Windows下编辑的文本文件在上传至linux服务器时,回车'\r\n'就显示成^M+' ...
- dos2unix 将DOS格式转换成NUIX格式
1.命令功能 dos2unix将windows文件格式转换成unix文件格式. 2.语法格式 dos2unix file 3.使用范例 [root@localhost ~]# dos2unix wi ...
- Linux下dos2unix命令将windows文件编码格式dos转换成Unix格式
问题描述: 在Windows系统下面使用文本编辑器notepad后传到Linux系统下的话 Linux下处理和执行一般都存在一些问题,我们可以通过命令查看文件是否是dos格式的, 如果有如图所示的M标 ...
- vim 将文件从dos格式转换到unix格式
dos格式文件传输到unix系统时,会在每行的结尾多一个^M(/r),当然也有可能看不到.但是在vim的时候,会在下面显示此文件的格式,比如 "dos.txt" [dos] 120 ...
- [转] 将DOS格式文本文件转换成UNIX格式
点击此处阅读原文 用途说明 dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter).DOS下的文本文 ...
- PE文件格式详解,第一讲,DOS头文件格式
PE文件格式详解,第一讲,DOS头文件格式 今天讲解PE文件格式的DOS头文件格式 首先我们要理解,什么是文件格式,我们常说的EXE可执行程序,就是一个文件格式,那么我们要了解它里面到底存了什么内容 ...
- dos2unix命令 – 将DOS格式的文本文件转换成UNIX格式
今天做题的时候,出现了个很冷门的: 查找子目录src下所有后缀为.txt的文件执行dos2unix命令,把文件从Dos格式转换为Linux格式,正确的命令是:find src "*.txt& ...
- dos下的edit命令使用详解
dos下的edit命令使用详解 来源:网络 作者:未知 edit命令是一个简单的编辑软件,我们经常用它来编辑一些程序和批处理文件. 比如,我想在c盘根目录下编辑一个简单的批处理文件,要求无论当前盘和当 ...
随机推荐
- 简述 Spring Cloud 是什么2
一.概念定义 Spring Cloud是一个微服务框架,相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案. Spring Cloud对微服务基础框架Ne ...
- windows端ndk 编译.c/cpp文件生成so库示例
- CSS| 框模型-border
CSS 边框属性
- 用Python实现数据结构之队列
队列 队列与栈的类型很相似,但它遵循的原则是先进先出(FIFO),也就是元素插入的时候只能在该数据结构的末端,而删除只能删除最前面的元素.队列同样应用广泛,例如打印机的队列或者是一个web服务器响应请 ...
- 使用KeePass管理两步验证
目录 使用KeePass管理两步验证 两步验证 KeePass中管理两步验证 KeeTrayTOTP插件使用 使用KeePass管理两步验证 文:铁乐与猫 2018-9-9 KeePass 是一款管理 ...
- 建立标准编码规则(一)-自定义C#代码分析器
1.下载Roslyn的Visual Studio分析器模板插件(VS2015 或VS2017) https://marketplace.visualstudio.com/items?itemName= ...
- [Eclipse+PyDev]ImportError: DLL load failed:找不到指定的模块 解决方案
1. 环境 Eclipse 4.4.2 Python 3.5 Window 8.1 2. 问题 在代码中import numpy时,提示 " ImportError: DLL load fa ...
- Navicat 连接Oracle时提示oracle library is not loaded的问题解决
笔者使用的Navicat Premium 12启动界面截屏: 请注意是64位的.笔者win7 64位系统. 连接Oracle时提示“oracle library is not loaded”. 解决方 ...
- mysql5.7配置文件优化
[mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/l ...
- 周杰伦的2000w个故事
http://m.v.qq.com/play/play.html?coverid=g0p1mhz5c52ogla&vid=g0025u7k36z&ptag=2_5.8.6.13321_ ...