【it168 應用】對於經常在unix和windows下同時進行軟體開發的人來說,檔案格式轉換是進行需要做的事,由於unix作業系統下換行符是字元\n, 而windows作業系統下換行符是字元\r\n,所以在這兩個作業系統下傳輸檔案時需要進行格式轉換,unix環境下的檔案格式轉換工具有dos2unix命令,windows環境下可以用ultraedit進行轉換,但是平常我們一般都是用它們進行單個檔案的轉換,如果要進行批量轉換,unix下需要自己寫shell指令碼,windows環境下需要進行批量替換,具體方法如下:1. unix環境下dos格式檔案批量替換為unix檔案
#!/bin/bash
showusage()
dir=$pwd
if [ $# -gt 1 ]
then
showusage
fiif [ $# -gt 0 ]
then
dir=$1
fifor i in `find $dir`
doif [ ! -d $i ]
then
echo 「processing file.。.」 $i
dos2unix $i $i
fidone
或dos2unix 實際上就是把文字檔案裡面的^m刪除,我一般懶得用這個命令,vi裡面用乙個命令(:%s/^m//g)刪除即可。
用法舉例:
dos2unix a.txt b.txt
要把一批檔案都dos2unix,可以用下面的for語句:
for f in *.txt 或for f in *
dodos2unix $f
done
注:*表示當前目錄中所有檔案的名字
2. windows環境下dos格式檔案批量替換為unix檔案在ultraedit中選擇search | search in files選單,在find框中填寫^p(表示dos檔案中的回車換行符號),在replace with中輸入^n(表示unix檔案中的回車換行符號)。然後選擇檔案目錄進行批量替換,可以進行副檔名過濾
關於從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了。
DOS 和Unix 檔案 vim轉化
很久以前,老式的電傳打字機使用兩個字元來另起新行。乙個字元把滑動架移回首位 稱為回車,另乙個字元把紙上移一行 稱為換行,當計算機問世以後,儲存器曾經非常昂貴。有些人就認定沒必要用兩個字元來表示 規定了用 開發 ms dos 以及微軟視窗 的那些傢伙則決定沿用老式的。那意味著,如果你試圖把乙個檔案從一...
DOS 和Unix 檔案 vim轉化
很久以前,老式的電傳打字機使用兩個字元來另起新行。乙個字元把滑動架移回首位 稱為回車,另乙個字元把紙上移一行 稱為換行,當計算機問世以後,儲存器曾經非常昂貴。有些人就認定沒必要用兩個字元來表示 規定了用 開發 ms dos 以及微軟視窗 的那些傢伙則決定沿用老式的。那意味著,如果你試圖把乙個檔案從一...
dos檔案轉換成unix檔案格式
dos檔案轉換成unix檔案格式 摘自 ahsunlong的部落格 dos格式檔案傳輸到unix系統時,會在每行的結尾多乙個 m,當然也有可能看不到,但是在vi的時候,會在下面顯示此檔案的格式,比如 dos.txt dos 120l,2532c 字樣,表示是乙個 dos 格式檔案,如果是mac系統的...