dos2unix命令 – 將DOS格式的文本文件轉換成UNIX格式


  • 今天做題的時候,出現了個很冷門的:
  • 查找子目錄src下所有后綴為.txt的文件執行dos2unix命令,把文件從Dos格式轉換為Linux格式,正確的命令是:find src “*.txt” –exec dos2unix {} ;
  • 當時並不知道,在一大堆沒用的百度之后,終於找到比較可靠的

dos2unix命令用來將DOS格式的文本文件轉換成UNIX格式的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以\r\n作為斷行標志的,表示成十六進制就是0D 0A。而Unix下的文本文件是以\n作為斷行標志的,表示成十六進制就是0A。

DOS格式的文本文件在Linux下,用較低版本的vi打開時行尾會顯示^M,而且很多命令都無法很好的處理這種格式的文件。如果是個shell腳本,而Unix格式的文本文件在Windows下用Notepad打開時會拼在一起顯示。因此產生了兩種格式文件相互轉換的需求,對應的將UNIX格式文本文件轉成成DOS格式的是unix2dos命令。

語法格式:dos2unix [參數] [文件]

常用參數:

-k 保持輸出文件的日期不變
-q 安靜模式,不提示任何警告信息
-V 查看版本
-c 轉換模式:ASCII 7bit ISO Mac
-o 寫入到源文件
-n 寫入到新文件

參考實例

  • 最簡單的用法就是dos2unix直接跟上文件名:
[root@linuxcool ~]# dos2unix file
  • 如果一次轉換多個文件,把這些文件名直接跟在dos2unix之后。(注:也可以加上-o參數,也可以不加,效果一樣)
[root@linuxcool ~]# dos2unix file1 file2 file3
[root@linuxcool ~]# dos2unix -o file1 file2 file3
  • 上面在轉換時,都會直接在原來的文件上修改,如果想把轉換的結果保存在別的文件,而源文件不變,則可以使用-n參數。
[root@linuxcool ~]# dos2unix -n oldfile newfile
  • 如果要保持文件時間戳不變,加上-k參數。所以上面幾條命令都是可以加上-k參數來保持文件時間戳的。
[root@linuxcool ~]# dos2unix -k file
[root@linuxcool ~]# dos2unix -k file1 file2 file3
[root@linuxcool ~]# dos2unix -k -o file1 file2 file3
[root@linuxcool ~]# dos2unix -k -n oldfile newfile
  • 與該功能相關的Linux命令:

    • chroot命令 – 改變根目錄
    • tree命令 – 以樹狀圖列出目錄內容
    • zgrep命令 – 在壓縮文件中按正則表達式來搜索
    • mysqldump命令 – MySQL數據庫備份
    • patch命令 – 修補文件
    • gitps命令 – 報告程序狀況
    • chmod命令 – 改變文件或目錄權限
    • semanage命令 – 安全上下文查詢與修改
    • source命令 – 在當前Shell環境中從指定文件讀取和執行命令
    • mkdir命令 – 創建目錄
  • 參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM