台灣最大程式設計社群網站
線上人數
2068
 
會員總數:245964
討論主題:189547
歡迎您免費加入會員
討論區列表 >> Linux / Unix >> Dos文件到Unix文件批量轉換小方法
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Dos文件到Unix文件批量轉換小方法
價值 : 10 QP  點閱數:2200 回應數:1
樓主

andyko
門外漢
0 51
156 0
發送站內信

對於經常在Unix和Windows下同時進行軟件開發的人來說,文件格式轉換是進行需要做的事,由於Unix操作系統下換行符是字符\n, 而Windows操作系統下換行符是字符\r\n,所以在這兩個操作系統下傳輸文件時需要進行格式轉換,Unix環境下的文件格式轉換工具有dos2unix命令,Windows環境下可以用UltraEdit進行轉換,但是平常我們壹般都是用它們進行單個文件的轉換,如果要進行批量轉換,Unix下需要自己寫shell腳本,Windows環境下需要進行批量替換,具體方法如下:1. Unix環境下Dos格式文件批量替換為Unix文件

  #!/bin/bash

  showUsage()

  {

  echo "Usage: dos2unixdir [destdir]"

  exit 0

  }dir=$PWD

  if [ &# -gt 1 ]

  then

  showUsage

  fiif [ &# -gt 0 ]

  then

  dir=$1

  fifor i in `find $dir`

  do

  if [ ! -d $i ]

  then

  echo "processing file..." $i

  dos2unix $i $i

  fi

  done

  或

  dos2unix 實際上就是把文本文件堶悸榨M刪除,我壹般懶得用這個命令,vi堶悼帠個命令(:%s/^m//g)刪除即可。

  用法舉例:

  dos2unix a.txt b.txt

  要把壹批文件都dos2unix,可以用下面的for語句:

  for f in *.txt 或for f in *

  do

  dos2unix $f

  done

  註:*表示當前目錄中所有文件的名字

  2. Windows環境下Dos格式文件批量替換為Unix文件在UltraEdit中選擇Search | Search in files菜單,在Find框中填寫^p(表示DOS文件中的回車換行符號),在Replace with中輸入^n(表示UNIX文件中的回車換行符號)。然後選擇文件目錄進行批量替換,可以進行擴展名過濾

  http://blog.chinaunix.net/u3/94271/showart_2291548.html

  關於從UNIX到DOS格式的批量修改

  從西門子bsc下載的asc文件可能都是UNIX格式的,我們在處理的時候需要把它們都轉換成dos格式,這就需要壹個批量轉換的過程。

  首先要明確2個問題:

  1.UNIX格式和DOS格式就我所知區別只是在於回車這個字符。UNIX格式下,每行的回車都是用壹個0x0a字符表示的;而DOS格式下,每行的回車都是用0x0d0a兩個字符表示的。所以我們只需要替換這個即可。

  2.UltraEdit本身就具備多文件批量替換的功能。

  所以我們可以這樣做:

  1.打開UltraEdit

  2.選擇在文件中替換

  3.在查找中輸入: ^n (代表在UNIX格式下的回車字符)

  4.在替換中輸入: ^P (代表在DOS格式下的回車字符)

  5.選擇文件類型為*.asc

  6.選擇好需要轉換的所有文件所在目錄

  7.OK點全部替換

  這樣就大功告成了,是不是超簡單呢?根本需要寫什麽批處理程序。關鍵是明白我上面提到的2點就OK了

本篇文章發表於2010-10-15 15:54
== 簽名檔 ==
www.51-pass.com
1樓
www.51-pass.com
www.51-pass.com
www.51-pass.com
www.51-pass.com
www.51-pass.com
www.51-pass.com
www.51-pass.com
本篇文章回覆於2010-10-15 15:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.