linux格式批量轉換為dos格式,linuxdos

來源:互聯網
上載者:User

linux格式批量轉換為dos格式,linuxdos

註:寫的只是基本知識,望高手勿噴,寫這個不是為了炫耀,只是為了方便其他人,僅此而已。

一:指令碼功能:

批量處理目錄以及子目錄下的檔案格式問題,能夠輕易的將linux格式轉換為dos格式。

二:寫此部落格的意義:

1、本著開源精神,目的:只是為了方便更多的人、不要花太多的時間在這種無聊的事情上。

2、現在還沒有批量處理的一個指令碼(至少我還沒發現),那麼,寫出來,真的有人需要呢。

3、如果使用者目錄下還有更多的子目錄,單單依靠使用者自行轉換,檔案較少還能行,如果多的話,就有點力不從心。

 

三:下面介紹兩種方法使用指令碼:

1、本教程附帶給你指令碼,按照教程使用即可,不用過多的瞭解內部代碼結構。

2、解釋編寫的指令碼、可自行學習,如有不理解的地方,歡迎添加QQ:2081795560 進行叫交流學習(有妹子就更好了)。

 

四:使用指令碼介紹:

下載連結: 

地址1:http://files.cnblogs.com/files/wang-li/UnixChangeWindows.sh

地址2:點擊下載

系統所需要的命令:

1、unix2dos 2、awk 如果沒有此命令,則需要安裝後執行指令碼

使用說明:

1、複製指令碼至linux機器上,賦給相應的許可權(chmod 755 指令碼名)。

2、用法1:指令碼名 相對路徑 用法2:指令碼名 絕對路徑 用法3:複製該指令碼到需要轉換的目錄下,直接執行指令碼名即可,無需跟路徑

 

解釋一下用法:

假如我的指令碼名為:UCW.sh 需要轉換的目錄為:/home/Test/

進入到UCW.sh所在的目錄下,

賦許可權,chomd  755 UCW.sh

下面幾個用法隨意選一個來轉換即可

用法1:./UCW.sh Test/         此時應該在/home/下執行此指令碼

 用法2:絕對路徑 ./UCW.sh /home/Test/

用法3:cp UCW.sh /home/Test ,然後執行:/home/Test/UCW.sh   

 

五:解釋編寫的指令碼

  由於沒有寫函數,所以,代碼有些地方過於重複,所以,解釋一段即可,由於自己的表達能力有限,如果哪位仁兄看到了在下的代碼,歡迎給在下注釋。

 1 #!/bin/bash 2  3 if [ -z "$1" ];then  #判斷命令是否跟參數,[ -z ] 如果為空白 則返回true 4      5     FileName=$(pwd) #擷取目前的目錄 6  7     find $PathName -ls | awk '{print $3 "    " $11}' | grep '^.*' > $PathName/log.txt #利用find命令嘉awk來擷取 檔案的屬性和檔案絕對路徑 8          9     grep '^-' $PathName/log.txt | awk '{print $2}'  > $PathName/log2.txt #擷取檔案屬性以'-'的檔案清單,並且擷取檔案絕對路徑10         11     which unix2dos 2> $PathName/error.log #檢測一下使用者是否有unx2dos這個命令,並且將錯誤資訊輸入到檔案中。其實還可以用$?來檢測的12     if [ -s $PathName/error.log ];then #錯誤資訊內有錯誤輸出,則提示使用者未安裝此命令,並且退出此指令碼 13         echo -e "Also need to install the following sofware: unix2dos"14         rm -rf $PathName/error.log15         exit -1 #非正常退出 可以用$?來檢測16     fi17 18     cat $PathName/log2.txt | while read line #讀入上面已經錄取到的檔案清單,開始逐步檢測19     do20         echo "unix2dos:${line}"21         unix2dos $line # 其實整篇指令碼核心在此22     done23     24     clear 25     echo "runing success" #列印指令碼裝換成功26 else27     FilePath=$(pwd)28 29     if [[ $1 == /* ]];then #判斷是否是絕對路徑,還有,我也不知道這個[[   ]]是什麼意思,如果誰知道,請告知與我,謝謝30         PathName=$1;31 32         if [ -e $PathName ];then # 判斷是否是存在這個目錄33             echo " "34         else35             echo "unix2dos:cannot change $PathName : No such directory"36             exit -1 #不存在,列印錯誤資訊,並且以不正常的形式推出37         fi38 39         find $PathName -ls | awk '{print $3 "    " $11}' | grep '^.*' > $PathName/log.txt 40     41         grep '^-' $PathName/log.txt | awk '{print $2}'  > $PathName/log2.txt42         43         which unix2dos 2> $PathName/error.log44         if [ -s $PathName/error.log ];then45             echo -e "Also need to install the following sofware: unix2dos"46             rm -rf $PathName/error.log47             exit -148         fi49 50         cat $PathName/log2.txt | while read line51         do52             echo "unix2dos:${line}"53             unix2dos $line54         done55     56         clear57         echo "runing success"58         59     else60         PathName=$FilePath/$1 #由於是覺得路徑,則不需要檢測61 62         if [ -e $PathName ];then #判斷是否是正常目錄63             echo " "64         else65             echo "unix2dos:cannot change $PathName : No such directory"66             exit -167         fi68 69         find $PathName -ls | awk '{print $3 "    " $11}' | grep '^.*' > $PathName/log.txt 70         71         grep '^-' $PathName/log.txt | awk '{print $2}'  > $PathName/log2.txt72         73         which unix2dos 2> $PathName/error.log74         if [ -s $PathName/error.log ];then75             echo -e "Also need to install the following sofware: unix2dos"76             rm -rf $PathName/error.log77             exit -178         fi79 80         cat $PathName/log2.txt | while read line81         do82             echo "unix2dos:${line}"83             unix2dos $line84         done85         86         clear87         echo "runing success"88     fi89 90 fi91 92 exit 0 #退出

 指令碼介紹完畢。

還是那句話,本人小白,高手勿噴,我只是希望,這個小指令碼,真的能夠協助大家解決問題,僅此而已。

  青青河邊草  2016-05-16 10:21:11

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.