• DOS和UNIX文本文件之间相互转换的方法


    在Unix/Linux下可以使用file命令查看文件类型,如下:

    file dosfile.txt
    

    使用dos2unix

    一般Linux发行版中都带有这个小工具,只能把DOS转换为UNIX文件,命令如下:

    dos2unix dosfile.txt

    安装dos2unix

    yum -y install dos2unix
    

    使用tr

    使用tr命令拷贝标准输入到标准输出,替换或者删除掉选择的字符,只能把DOS转换为UNIX文件,命令如下:

    tr -d '
    ' < dosfile.txt > unixfile.txt
    

    使用vim

    Vim是一个vi的改进版本,可以运行在Windows和Linux平台上,使用方法如下:

    # vim dosfile.txt

    DOS转UNIX::set ff=unix
    UNIX转DOS::set ff=dos
    :wq
    

    注:为了能让vim可以自动识别DOS和UNIX文本文件格式,可以在.vimrc(Linux)或_vimrc(Windows)配置文件中加入如下一行设置:

             set fileformats=dos,unix

             设置完成后,使用vim打开DOS文本文件就不会显示^M字符了。

    使用Emacs

    Emacs是一个Unix下面的文本编辑工具。它会在底部的状态栏上显示文件的信息。

            DOS转UNIX :M-xset-buffer-file-coding-system Unix

            UNIX转DOS:M-xset-buffer-file-coding-system dos

    使用sed

    在DOS文件格式中使用CR/LF换行,在Unix下仅使用LF换行,sed替换命令如下:

             DOS转UNIX:$ sed 's/.$//' dosfile.txt > unixfile.txt

             UNIX转DOS:$ sed 's/$/ /' unixfile.txt > dosfile.txt

    使用Perl

    Perl是相当直接,你添加或删除掉文件每行结尾的CR字符。

             DOS转UNIX:perl -p -e 's/ $//' < dosfile.txt > unixfile.txt

             UNIX转DOS:perl -p -e 's/$/ /' < unixfile.txt > dosfile.txt

    使用awk

            DOS转UNIX:awk '{sub(" $","", $0);print $0}' dosfile.txt > unixfile.txt

            UNIX转DOS:awk '{sub("$"," ", $0);print $0}' dosfile.txt > unixfile.txt

    使用Python

            DOS转UNIX:python -c "import sys; map(sys.stdout.write, (l[:-2] + ' ' for l in sys.stdin.readlines()))"< dosfile.txt > unixfile.txt

            UNIX转DOS:python -c "import sys; map(sys.stdout.write, (l[:-1] + ' ' for l in sys.stdin.readlines()))"< dosfile.txt > unixfile.txt

    总结

             还有其它DOS和UNIX文本文件的转换方法,我个人推荐使用vim命令。但是,对于大型的文件,推荐使用perl工具,你也不希望在vim或Emacs中打开几个G的文本文件。

  • 相关阅读:
    jquery-追加元素
    mssql-异常value '0000-00-00' can not be represented as java.sql.Date
    lucene-Field.Store解析
    mysql-删除日志文件命令详解
    js-读取上传文件后缀
    js-处理回车事件
    maven-腾讯SDK(QQ)接口java引入pom配置
    ps制作gif图片
    java-commons-HttpClient超时设置setConnectionTimeout和setSoTimeout
    js-比较两个日期的大小
  • 原文地址:https://www.cnblogs.com/edward2013/p/5301963.html
Copyright © 2020-2023  润新知