`
syzxlyx_cu
  • 浏览: 18190 次
  • 性别: 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命令 将DOS格式的文本文件转换成UNIX格式

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

    unix2dos 文本文件相互转换

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

    windows下UNIX2DOS

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

    dos2unix.zip

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

    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常用必会60个命令实例详解doc/txt

    在Linux 和Unix系统上,所有文件都是作为一个大型树(以/为根)的一部分访问的。要访问CD-ROM上的文件,需要将CD-ROM设备挂装在文件树中的某个挂装点。如果发行版安装了自动挂装包,那么这个步骤可自动进行。在Linux...

    电子书架

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

    Serv-U最新注册版

    这里提到的FTP 协议是专门被用来规定计算机之间进行文件传输的标准和规则,正是因为有了象FTP 这样的专门协议,才使得人们能够通过不同类型的计算机,使用不同类型的操作系统,对不同类型的文件进行相互传递。...

    cmd操作命令和linux命令大全收集

    copy 1st.jpg/b+2st.txt/a 3st.jpg 将2st.txt的内容藏身到1st.jpg中生成3st.jpg新的文件,注:2st.txt文件头要空三排,参数:/b指二进制文件,/a指ASCLL格式文件 copy ipadmin$svv.exe c: 或:copyipadmin$*.* 复制...

    会计理论考试题

    3.硬盘格式化分二个阶段,低级格式化和高级格式化。( N ) 4.硬盘格式化分三个阶段,其先后顺序为低级格式化、分区、高级格式化。( Y ) 5.西文工作方式下不可输入汉字。( Y ) 6.微机的键盘是一种分离式的智能键盘...

    LINUX 20招

    1.计算文件数和目录数 下面的语句可以帮你计算有多少个文件和多少个目录 # ls -l * |grep "^-"|wc -l ---- to count files # ls -l * |grep "^d"|wc -l ----- to count dir 还可以将以上的语句变成...

    AkelPad-4.8.5-setup

    ◆支持 DOS/Windows、Unix 和 Mac 换行符格式; ◆文件打开前预览; ◆纠正错误代码页显示; ◆文本列选; ◆多级撤消; ◆支持“正则表达式”的查找/替换,可快速搜索/替换文本字串; ◆能记住文件的代码页和插入点...

    《计算机操作系统》期末复习指导

    任务:把存储、检索、共享和保护文件的手段,提供给操作系统本身和用户,以达到方便用户和提高资源利用率的目的。 功能: ---分配与管理外存 ---提供合适的存储方法 ---文件共享、保护,解决...

    Foxpro 开发答疑160问

    69. 如何进行DOS/Windows文本文件与UNIX/Linux文本文件的相互转换 257 70. 如何遍历磁盘中的所有目录及文件 258 71. 如何使用低级函数读写文件 263 72. 如何为Visual FoxPro应用程序增加文件压缩功能 271 73. ...

    《你必须知道的495个C语言问题》

    4.14 怎样在整型和指针之间进行转换?能否暂时把整数放入指针变量中,或者相反? 51 *4.15 我怎样把一个int变量转换为char *型?我试了类型转换,但是不行。 52 第5章 空指针 53 空指针和空指针常量 53 5.1...

    Tcl_TK编程权威指南pdf

    Tcl解释器已经从Unix平台移植到了DOS、Windows、OS/2、NT以及Macintosh环境中,而TK工具包也从X window系统移植到了Windows和Macintosh环境中。 1988年,当我在Berkeley做ousterhout教授的博士生时,第一次听说了...

    计算机基础复习.docx

    WINDOWS操作系统 、WindoesNT 网络操作系统 下列软件中不是系统软件的是().DOS\ Windows \C语言\Unix 计算机基础复习全文共36页,当前为第3页。下列有关回收站的说法中,正确的是().当"回收站"的空间被用空时,被删除...

Global site tag (gtag.js) - Google Analytics