Linux Cat命令除去空白行代碼實(shí)現(xiàn)
輸入文件按照它們?cè)贚inux Cat命令后的排列順序被打印,因此,要調(diào)換信息的順序,就必須先調(diào)換輸入文件的順序。此外,當(dāng)需要處理的文件數(shù)目對(duì)于您來(lái)說(shuō)過(guò)大而無(wú)法手工輸入這些文件的名稱(chēng)時(shí),您可以使用通配符,如在catchapter*>book中使用的那樣,記住,文件名將會(huì)按升序排列。當(dāng)您突然發(fā)現(xiàn)chapter13被發(fā)送到輸出中時(shí)會(huì)在chapter2之前,而會(huì)在chapter02之后時(shí),這會(huì)引起很有意思的問(wèn)題。
當(dāng)Linux Cat命令的輸出沒(méi)有被重定向到一個(gè)文件或另一個(gè)命令的標(biāo)準(zhǔn)輸出時(shí),Linux Cat命令表現(xiàn)出來(lái)的行為與多數(shù)命令行工具一樣,即將其輸出發(fā)送到控制臺(tái)。這意味著您可以使用Linux Cat命令來(lái)顯示文件;例如,您可以使用cat/etc/passwd來(lái)顯示系統(tǒng)密碼文件的內(nèi)容。為方便起見(jiàn),您應(yīng)該用less查看大文件,如在less/etc/passwd中那樣(您可以通過(guò)輸入manless學(xué)習(xí)更多關(guān)于less的知識(shí))。
盡管Linux Cat命令主要用于合并文件,您還可以將它用于輸入的簡(jiǎn)單自動(dòng)處理。例如,您可以使用一個(gè)單獨(dú)的空白行來(lái)除去多行空白行(使用-s選項(xiàng)),這是一個(gè)在您將源代碼公諸于世前進(jìn)行清除工作的好辦法。遺憾的是,cat并沒(méi)有用于一次清除所有空白行的選項(xiàng)。但這并不是什么大問(wèn)題,因?yàn)槟梢允褂梅奖愕膕ed命令將這些空白行除去:
清單1.使用sed與Linux Cat命令除去空白行$cat-s/etc/X11/XF86Config|sed'/^[[:space:]]*$/d'
- ...
- #MultipleFontPathentriesareallowed(theyareconcatenatedtogether)
- #Bydefault,RedHat6.0andlaternowuseafontserverindependentof
- #theXservertorenderfonts.
- FontPath"/usr/X11R6/lib/X11/fonts/TrueType"
- FontPath"unix/:7100"
- EndSection
- ...
對(duì)于讀取配置文件和HTML頁(yè)面的源文件,特別是那些由腳本生成的插入了不必要新行的源文件,以及那些包含大型條件結(jié)構(gòu)(其各個(gè)項(xiàng)之間已經(jīng)用空行分開(kāi))的源文件來(lái)說(shuō),空白行緊縮是一個(gè)方便的技巧。
Linux Cat命令的另外一個(gè)重要的功能是它可以對(duì)行進(jìn)行編號(hào)。這種功能對(duì)于程序文檔的編制以及法律和科學(xué)文檔的編制很方便。打印在左邊的行號(hào)使得參考文檔的某一部分變得容易。這在編程、科學(xué)研究、業(yè)務(wù)報(bào)告或甚至是立法工作中都是非常重要的。對(duì)行進(jìn)行編號(hào)功能有兩個(gè)選項(xiàng):-b選項(xiàng)(只能對(duì)非空白行進(jìn)行編號(hào))和-n選項(xiàng)(可以對(duì)所有行進(jìn)行編號(hào)):
本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/zyofprogrammer/archive/2007/06/10/1647224.aspx
【編輯推薦】