歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

RedHat Linux 9下閱讀文本文件的其它命令

13.11. 閱讀文本文件的其它命令

我們已經向你介紹了幾個基本的在文本編輯器內閱讀文件的 shell 提示下的命令。下面列舉了其它幾個此類命令。

13.11.1. head 命令

你可以使用 head 命令來查看文件的開頭部分。此項命令是:

head <filename>

head 是一個有用的命令,但是由於它只限於文件的最初幾行,你看不到文件實際上有多長。按照默認設置,你只能閱讀文件的前十行。你可以通過指定一個數字選項來改變要顯示的行數,如下面的命令所示:

head -20 <filename> 13.11.2. tail 命令

與 head 命令恰恰相反的是 tail 命令。使用 tail 命令,你可以查看文件結尾的十行。這有助於查看日志文件的最後十行來閱讀重要的系統消息。你還可以使用 tail 來觀察日志文件被更新的過程。使用 -f 選項, tail 會自動實時地把打開文件中的新消息顯示到屏幕上。例如,要活躍地觀察 /var/log/messages ,以根用戶身份在 shell 提示下鍵入以下命令:

tail -f /var/log/messages 13.11.3. grep 命令

grep 命令對於在文件中查找指定的字串很有用途。例如,如果你想在 sneakers.txt 文件中查找每一個提到“coffee”的地方,你可以鍵入:

grep coffee sneakers.txt

你就會看到文件中帶有“coffee”的每一行。

竅門:除非另有說明, grep 搜尋是 區分大小寫(case sensitive) 的。這意味著搜尋 Coffee 與搜尋 coffee 不同。在 grep 的選項中有 -i 這一項,它會允許你在搜尋文件時不區分大小寫。關於這個命令的詳情,請閱讀 grep 的說明書(man)頁。

13.11.4. I/O 重導向和管道

當你想貯存及(或)打印信息以便以後閱讀時,你可以使用管道和輸出重導向。

譬如,你可以使用 grep 來搜尋文件中的某一類內容,然後把結果保存在文件中或發送給打印機。

譬如,要打印 sneakers.txt 文件中關於“coffee”的行,只需鍵入:

grep coffee sneakers.txt lpr 13.11.5. 通配符和正則表達式

如果你忘記了你要找的文件名怎麼辦?答案是使用通配符或正則表達式。你在不知道完整的文件名的情況下也可以在該文件上執行操作。只需填寫你所知的部分,剩余部分用 通配符(wildcard) 來替代。通配符是特殊符號,你可以用它們來替換字母、數字和符號,這比仔細查閱長目錄列表來尋找某個文件要容易得多。

竅門:要閱讀關於通配符和正則表達式的詳情,請看一看 bash 的說明書頁( man bash )。請記住,你可以把這個文件存為一個文本文件,方法是鍵入 man bash col -b > bash.txt 命令。然後,你便可以使用 less 或 vi ( vi bash.txt )來打開並閱讀該文件。如果你想打印該文件,請留意它的篇幅很長。

我們知道這個文件叫做“sneak____.txt”,因此鍵入:

ls sneak*.txt

這就會顯示這個文件的全名:

sneakers.txt

你在搜索時最常使用的可能是星號( * )。這個星號會選出匹配你所搜尋圖案的一切。因此即便你鍵入了:

ls *.txt

或:

ls sn*

你會發現 sneakers.txt 以及其它以 sn 開頭的文件或以 .txt 結尾的文件。這有助於盡可能地縮小搜尋范圍。

要縮小搜尋范圍的另一種方法是使用問號( ? )。和星號相似,使用 ? 能幫助你定位匹配某一搜尋圖案的文件。

然而在這種情況下, ? 對匹配單個字符有用,因此如果你搜尋 sneaker?.txt ,你會得到 sneakers.txt 這個搜尋結果,以及(或者) sneakerz.txt ,如果這個文件存在的話。

正則表達式比直截了當的星號和問號要復雜得多。

譬如,當一個星號恰巧是一個文件名的一部分時,比如說,如果文件 sneakers.txt 實際上叫做 sneak*.txt 的時候,正則表達式就會發揮它的作用了。

使用反斜線( \ ),你就可以指定你使用星號並不是想搜尋 一切 ,實際上你是在尋找名稱中帶有星號的文件。

如果這個文件叫做 sneak*.txt ,鍵入:

sneak\*.txt

下面是通配符和正則表達式的一個簡短列表:

* — 匹配所有字符

? — 匹配字串中的一個字符

\* — 匹配“*”字符

\? — 匹配“?”字符

\) — 匹配“)”字符




Copyright © Linux教程網 All Rights Reserved