亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1401 | 回復(fù): 0
打印 上一主題 下一主題

DOS、Mac 和 Unix 文件格式 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-07-17 23:27 |只看該作者 |倒序瀏覽
[color="#000066"]DOS、Mac 和 Unix 文件格式

    相信很多朋友都碰到過這三種文件格式的互換問題,今日又碰到這個問題,忽然想
尋根問底,于是整理了本文檔。


[color="#0000ff"]文件格式區(qū)別
   我們先看看這三個家伙有啥區(qū)別。很久以前,人們用老式的電傳打字機作為輸入設(shè)備,它使用
兩個字符來另起新行。一個字符把滑動架移回首位 (稱為回車,),另一個字符把紙上移一行
(稱為換行,)。
   當(dāng)計算機問世后,由于存儲器曾經(jīng)非常昂貴。有些人就認定沒必要用兩個字符來表示行尾。于是
UNIX 開發(fā)者決定他們可以用  一個字符來表示行尾。Apple 開發(fā)者規(guī)定了用 。
開發(fā) MS-DOS (以及微軟視窗) 的那些家伙則決定沿用老式的 。三種行尾格式如下:
[color="#990000"]        unix            
        dos            
        mac            
   這意味著,如果你試圖把一個文件從一種系統(tǒng)移到另一種系統(tǒng),那么你就有換行符方面的麻煩。


[color="#0000ff"]轉(zhuǎn)換
   有需求就會有動力。在Windows平臺,有強大的UltraEdit,它支持DOS、Mac 和 Unix 三種文
件格式的任意互換。在【文件】->【轉(zhuǎn)換】選項卡下有相應(yīng)的對應(yīng)選項,很傻很強大。下面我們看看在Unix/Linux平臺該如何做呢?

方法一:強大的dos2unix
[color="#000000"]   dos2unix filename

方法二:強大的腳本
   sed 's/^M//' filename > tmp_filename
   其中^M是同時Ctrl+V+M按出來的,表示回車。

   tr -d "\r" filename

   cat filename | perl -pe '~s/\r//g' > tmp_filename

方法三:強大的vim
    vim  filename      
    :set fileformat=unix
    :w

    vim  filename
    :%s/^M//g
    :w

與vi不同,vim具有自動識別功能,只需如下設(shè)置就可以自動進行轉(zhuǎn)換。不過由于Mac格式比較特殊,vim對mac格式的自動探測可能會出錯。請參考:
http://vimcdoc.sourceforge.net/doc/usr_23.html
    vim  filename
    :set fileformats=unix,dos,mac


[color="#0000ff"]批量轉(zhuǎn)換
   有時候我們可能希望對這種轉(zhuǎn)換進行批量處理。在Windows下有強大的UltraEdit,用全局replace的方法或者建立工程的方法可以批量轉(zhuǎn)換,請參考
http://tech.ddvip.com/2007-10/119380983936863.html
。Windows平臺下還有很多相關(guān)的小工具,如MultiU2D等,google一下吧。
   
   在Unix/Linux平臺下我們就要借助腳本文件或者通道了,實質(zhì)上是上述幾種方法的自動化。下面舉幾個簡單例子,來源自
http://www.72891.cn/viewthread.php?tid=412957&extra=&page=1

腳本1:
ls -l | awk '{print $8}' > filename.txt
N=1
NN=`wc -l filename.txt | awk '{print $1}'`
while [ "$N" -le "$NN" ]; do
  TempLine=`sed -n "$N"p "filename.txt"`
  if [ -n "$TempLine" ]; then            
    tmpfilename=$TempLine
    dos2ux $tmpfilename > file
    mv file $tmpfilename
  fi
  N=$(($N + 1))
done

腳本2:
for XFILE in $(egrep -l ^M `find . -name "*.txt";find . -name "*.sql"`)
  do
    echo "開始處理文件"$XFILE
    if [ -s $XFILE ]
    then
      TMPFILE=$XFILE.tmp
      mv $XFILE $TMPFILE
      tr -d "\r"  $XFILE
      rm $TMPFILE
    else
      continue
    fi
done

通道法:
find . -type f |xargs -i dos2unix {}


[color="#0000ff"]后記
   對于Mac格式轉(zhuǎn)換到其他兩種格式的方法類似,在類Unix環(huán)境下有dos2unix/mac2unix工具。
   在計算機世界,格式轉(zhuǎn)換無處不在,如字符格式、壓縮格式、網(wǎng)絡(luò)協(xié)議格式、音視頻格式等等。所以進行相關(guān)工作時,應(yīng)該多多留意。
               
               
               

本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u3/97596/showart_1999657.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP