`
syzxlyx_cu
  • 浏览: 19013 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

文件格式相互转换(dos 和unix )

阅读更多

dos格式文件传输到unix系统时,会在每行的结尾多一个^M,当然也有可能看不到,但是在vi的时候,会在下面显示此文件的格式,比如 "dos.txt" [dos] 120L, 2532C 字样,表示是一个[dos]格式文件,如果是MAC系统的,会显示[MAC],因为文件格式的原因有时会导致我们的unix程序,或者shell程序出现错误,那么需要把这些dos文件格式转换成unix格式,方法是    vi dos.txt       
    :set fileformat=unix
    :w                   这样文件就转换成unix格式文件了, 一般在windows机器上编写好了文件传到unix下就可能会出现这样的情况.  用命令:set ff?  可以看到dos或unix的字样.
  用:set ff=unix把它强制为unix格式,也可以用sed 这样的工具来做:  sed 's/^M//' filename > tmp_filename  其中^M是同时Ctrl+V+M按出来的,表示回车。
其它“怪招”:
1. 使用vi
vi dos_file.txt
:%s/^M//g
其中^M 必须是同时按 Ctrl+V+M ,表示回车。不是直接输入 ^M ,那没有用的, :-) 。2. 使用tr
命令:tr -d "\015" dos_file.txt3. 使用perlcat dos_file.txt | perl -pe '~s/\r//g' > dos_file.txt 【VIM】DOS、Mac 和 Unix 文件
很久以前,老式的电传打字机使用两个字符来另起新行。一个字符把滑动架移回首位 (称
为回车,<CR>),另一个字符把纸上移一行 (称为换行,<LF>)。
   当计算机问世以后,存储器曾经非常昂贵。有些人就认定没必要用两个字符来表示行
尾。UNIX 开发者决定他们可以用 <Line Feed> 一个字符来表示行尾。Apple 开发者规定
了用 <CR>。开发 MS-DOS (以及微软视窗) 的那些家伙则决定沿用老式的 <CR><LF>。
   那意味着,如果你试图把一个文件从一种系统移到另一种系统,那么你就有换行符方
面的麻烦。Vim 编辑器自动识别不同文件格式,并且不劳你操心就把事情给办妥了。
   选项 'fileformats' 包含各种各样的格式,Vim 会在编辑一个新文件之初尝试该选项
定义的各种格式。例如,下面这个命令告诉 Vim 先尝试用 UNIX 格式,其次,尝试
MS-DOS 格式:        :set fileformats=unix,dos编辑一个文件时,你将注意到 Vim 给出的信息消息报中包括文件所用的格式。如果你编
辑的是本地格式文件 (你编辑的文件格式和所用系统一致),你就不会看到任何格式名。
因此在 Unix 系统上编辑一个 Unix 格式文件不会产生任何关于格式的信息。但你若编辑
一个 dos 文件,Vim 将这样通知你:        "/tmp/test" [dos] 3L,71C 如果是 Mac 文件,你会看到 "[mac]"。
   探测到的文件格式会被存入 'fileformat' 选项。执行下面这个命令可以显示你当前
使用的文件格式:        :set fileformat?Vim 能使用的三种格式如下:        unix            <LF>
        dos             <CR><LF>
        mac             <CR>
使 用 MAC 格 式在 Unix 上,<LF> 用于分行。但 <CR> 字符混在文本行中间也非罕见。这种情况碰巧经
常发生在 Vi (和 Vim) 脚本内。
   在采用 <CR> 作为换行符的 Macintosh 上,<LF> 字符也有可能混在文本行中间。
   结果,很难 100% 肯定一个同时包含 <CR> 和 <LF> 的文件究竟是 Mac 还是 Unix 格
式。所以,Vim 假设你一般不会在 Unix 上编辑一个 Mac 文件,所以干脆对这种文件格
式不作检查。果真要检查此种格式,就把 "mac" 加入 'fileformats':        :set fileformats+=mac然后 Vim 就会猜测文件格式。要当心, Vim 可能会猜错的。
强 制 格 式如果你用往日美好的 Vi 来尝试编辑一个采用 MS-DOS 格式的文件,你将会发现每一行的
末尾有个 ^M 字符。(^M 就是 <CR>)。而 Vim 的自动探测功能就避免了这个问题。莫非
你确实要按那个样子来编辑这个文件吗?那么你需要强制 Vim 忽略文件格式而使用你指
定的格式:        :edit ++ff=unix file.txt字符串 "++" 告诉 Vim 后面跟的是选项名,以取代其默认值。但仅作用于这一个命令。
"++ff" 用于 'fileformat' 选项。你也可以用 "++ff=mac" 或 "++ff=dos"。
   这样用法并非适用于任意选项,目前 Vim 仅仅实现了 "++ff" 和 "++enc"。用全称
"++fileformat" 和 "++encoding" 也行。
转 换你可以用 'fileformat' 选项把文件从一种格式转换为另一种。例如,假定你有个名为
README.TXT 的 MS-DOS 文件,你要把它转换成 UNIX 格式。首先编辑这个采用 MS-DOS
格式的文件:
        vim README.TXTVim 将识别出那是一个 dos 格式文件。现在把这个文件的格式改为 UNIX:        :set fileformat=unix
        :write这个文件就以 Unix 格式存盘了。
分享到:
评论

相关推荐

    dos2unix.zip

    linux中没有dos2UNIX命令怎么解决办法,dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX ...因此产生了两种格式文件相互转换的需求,对应的将UNIX格式文本文件转成成DOS格式的是unix2dos命令。

    dos2unix命令 将DOS格式的文本文件转换成UNIX格式

    dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以\r\n作为断行...因此产生了两种格式文件相互转换的需求,对应的将UNIX格式文本文件转成成D

    unix和windows文件格式互相转化

    "ChangeToDos.bat" 和 "ChangeToUnix.bat" 是批处理文件,分别用于将目录中的所有文件转换为DOS/Windows格式和UNIX/Linux格式。批处理文件是Windows系统中的脚本文件,可以执行一系列命令。在 "ChangeToDos.bat" 中...

    windows下UNIX2DOS

    unix2dos 操作环境:Microsoft桌面操作系统/dos下操作 使用方法:拖放要转换的文本文件至输入窗口中,选择要转换的方式...unix文本文件与dos文本文件相互转换 1、unix文本转DOS文本文件 2、dos文本转UNIX文本文件

    unix2dos 文本文件相互转换

    unix2dos 操作环境:Microsoft桌面操作系统/dos下操作 使用方法:拖放要转换的文本文件至输入窗口中,选择要转换的方式...unix文本文件与dos文本文件相互转换 1、unix文本转DOS文本文件 2、dos文本转UNIX文本文件

    unix2dos工具批量转换

    unix2dos 批量转换 纯绿色 操作环境:Microsoft桌面操作系统/dos下操作 使用方法:拖放要转换的文本文件至输入窗口中,...unix文本文件与dos文本文件相互转换 1、unix文本转DOS文本文件 2、dos文本转UNIX文本文件

    unix2dos.exe

    小工具,unix文件和dos文件相互转换,文件大小不超过1G。解决unix文件中的/r 和Dos文件中的/r/n的不同引起的问题。

    excel与TXT文件相互转换小工具

    3:程序运行前不允许运行目录下同时存在TXT文件和xls文件 生成的文件存放在当前目录 进阶版操作方法: cmd打开命令行窗口 ################################################################################ ...

    鸟哥的_Linux_私房菜第10章-vim_程序编辑器

    - 使用 `dos2unix` 和 `unix2dos` 工具可以相互转换两种格式。 ##### 语系编码转换 - **iconv**:用于转换文本文件的编码格式,如 `iconv -f gb2312 -t utf-8 input.txt &gt; output.txt`。 #### 重点回顾 - vim ...

    计算机基础与应用教案.pdf

    1. 计算机操作系统:内容中提到了多个操作系统,包括Windows XP、DOS、UNIX、LINUX等。这些操作系统是计算机系统的核心软件,负责管理计算机硬件与软件资源,提供用户与计算机交互的平台。 2. 办公软件应用:文档中...

    计算机基础复习资料(20211010110520).pdf

    系统软件包括DOS和UNIX,应用软件如项目管理软件则针对特定任务。 9. **计算机病毒**:计算机病毒是设计用来破坏计算机系统的恶意软件,具备传染性、隐蔽性和破坏性等特征。 10. **微机发展**:微机的发展经历了...

    大学计算机基础考试模拟题及答案八.pdf

    12. 系统软件:UNIX和DOS是操作系统,属于系统软件;CAD是计算机辅助设计软件,Excel是电子表格软件,它们属于应用软件。 这些题目和答案展示了计算机基础知识的广泛性,包括操作系统的基本操作、网络概念、数据...

    2010年全国计算机等级考试一级MSOffice考试大纲-.doc

    - 数制转换,如二进制和十进制之间的相互转换。 - 数据编码,如ASCII码和汉字编码。 2. 微型计算机系统的组成: - 计算机硬件系统,包括CPU、内存(ROM和RAM)、输入输出设备等,以及各自的功能。 - 软件系统...

    大一计算机基础考试基本知识.docx

    理解工作簿和工作表的概念,能进行数据输入、编辑和格式化,掌握单元格的绝对和相对地址,以及使用基本公式和函数(如SUM、AVERAGE等)。数据清单管理,如记录单、排序、筛选和分类汇总,以及图表的创建和格式设置是...

    基本能力二轮复习信息技术部分.pptx

    1. 操作系统:计算机系统的核心组成部分,如DOS、Windows、Unix和Linux,它们负责管理和控制计算机硬件和软件资源。 2. 计算机体系结构:由运算器、控制器、存储器、输入设备和输出设备构成。存储器的最小单位是位...

    山东省专升本计算机文化基础要点整理.pdf

    例如DOS是单用户单任务的操作系统,Windows XP是单用户多任务,Unix和Linux是多用户分时操作系统。 11. 文件管理:文件命名有长度限制,不能使用特殊字符,文件属性包括隐藏、只读、存档和系统。操作快捷键如Ctrl+A...

    电子书架

    支持在BIG5和GB之间、DOS、UNIX之间相互转化,也可作为一个码制转换工具使用; 资料导入 支持鼠标拖放导入操作,您可以把文件或者文件夹拖入到电子书架内,文件或者文件夹的内容就会按照您的设置被导入,导入时...

    操作系统复习题含答案.doc

    文件管理则关注文件存储、目录、读写和共享保护,保证文件系统的稳定和安全。 多道程序设计技术允许同时在内存中运行多个程序,从宏观上看,这些程序并发执行,而在微观层面,CPU通过时间片轮转实现它们的交替执行...

    《操作系统》试题库-简答题.doc

    操作系统用户接口通常包括命令界面(如DOS和UNIX)和图形用户界面(如Windows),前者主要面向熟练用户,后者则更适合普通用户。系统调用是操作系统为程序员提供的低级接口,用于执行特定的操作。 程序状态字包含了...

Global site tag (gtag.js) - Google Analytics