Linux總結(十三):linux文本處理工具grep

一、grep命令:查找文件內容

         從文件中找到包含指定信息的那些行,在 UNIX 系統中,搜索的模式(patterns)被稱爲正則表達式(regular expressions),爲了要徹底搜索一個文件,有的用戶在要搜索的字符串前加上前綴 global(全面的),一旦找到相匹配的內容,用戶就像將其輸出(print)到屏幕上,而將這一系列的操作整合到一起就是 global regular expressions print,而這也就是 grep 命令的全稱。grep命令能夠在一個或多個文件中,搜索某一特定的字符模式(也就是正則表達式),此模式可以是單一的字符、字符串、單詞或句子。

 1、爲了進一步定義一個搜索模式,grep 命令支持的這幾種正則表達式的元字符(也就是通配符)。

正則表達式的通配符
通配符 功能
c* 將匹配 0 個(即空白)或多個字符 c(c 爲任一字符)。
. 將匹配任何一個字符,且只能是一個字符。
[xyz] 匹配方括號中的任意一個字符。
[^xyz] 匹配除方括號中字符外的所有字符。
^ 鎖定行的開頭。
$ 鎖定行的結尾。

        需要注意的是,

     (1)在基本正則表達式中,如通配符 *、+、{、|、( 和 )等,已經失去了它們原本的含義,而若要恢復它們原本的含義,則要在之前添加反斜槓 \,如 \*、\+、\{、\|、\( 和 \)。

     (2)grep 命令是用來在每一個文件或中(或特定輸出上)搜索特定的模式,當使用 grep 時,包含指定字符模式的每一行內容,都會被打印(顯示)到屏幕上,但是使用 grep 命令並不改變文件中的內容。

2、基本格式

[root@localhost ~]# grep [選項] 模式 文件名
#這裏的模式,要麼是字符(串),要麼是正則表達式
grep 命令常用選項及含義
選項 含義
-c 僅列出文件中包含模式的行數。
-i 忽略模式中的字母大小寫。
-l 列出帶有匹配行的文件名。
-n 在每一行的最前面列出行號。
-v 列出沒有匹配模式的行。
-w 把表達式當做一個完整的單字符來搜尋,忽略那些部分匹配的行。

        如果是搜索多個文件,grep 命令的搜索結果只顯示文件中發現匹配模式的文件名;而如果搜索單個文件,grep 命令的結果將顯示每一個包含匹配模式的行。

3、基本使用

[root@localhost ~]# grep CLERK emp.data
#現在要搜索此文件,找出職位爲 CLERK 的所有員工
[root@localhost ~]# grep -c CLERK emp.data
#如果只想知道職位爲 CLERK 的員工的人數,可以使用“-c”選項
[root@localhost ~]# grep ^78 emp.data
#使用正則表達式找出以 78 開頭的數據行

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章