Linux 中的 grep 命令
-
Linux 中的
grep
命令 -
在 Linux 中使用
grep
命令匹配不區分大小寫的模式 -
使用
grep
命令計算 Linux 中的匹配數 -
在 Linux 中使用
grep
命令提供匹配的檔名 -
在 Linux 中使用
grep
命令匹配精確模式 -
在 Linux 中使用
grep
命令僅顯示匹配的模式 -
在 Linux 中使用
grep
命令顯示行號 -
在 Linux 中使用
grep
命令反轉模式匹配 -
在 Linux 中使用
grep
命令匹配起始字串 -
在 Linux 中使用
grep
命令匹配行尾
本教程演示了使用 grep
命令匹配不區分大小寫的模式,計算匹配的數量,顯示匹配的檔名,匹配確切的模式,僅顯示匹配的模式,顯示行號,反轉模式匹配,匹配起始字串並匹配行尾。
Linux 中的 grep
命令
grep
命令表示全域性正規表示式列印。grep
命令在給定檔案中搜尋特定模式。
一旦找到匹配項,grep
命令會顯示與該模式匹配的所有行。grep
命令搜尋的模式是正規表示式。
grep
命令使用以下語法。
grep [options] pattern [file]
在 Linux 中使用 grep
命令匹配不區分大小寫的模式
grep
命令可以匹配不區分大小寫的模式。我們使用帶有 -i
選項的 grep
命令來匹配忽略區分大小寫的模式。
-i
選項告訴 grep
命令忽略模式和檔案中資料之間的大小寫差異。
下圖演示了使用 grep
命令匹配忽略模式和資料之間的大小寫區別的模式。我們目前在 foo
目錄中,它有 delft.txt
檔案。
使用 cat
命令將 delft.txt
檔案的內容列印到標準輸出。我們使用帶有 -i
選項的 grep
命令來匹配 delft.txt
檔案中的模式 Havard
。
輸出顯示在 delft.txt
中找到了 Havard
的兩個匹配項。delft.txt
檔案中的匹配對模式有不同的情況。
這是因為 grep
命令中的 -i
選項告訴 grep
命令,而不考慮模式和檔案中資料之間的大小寫差異。
使用 grep
命令計算 Linux 中的匹配數
grep
命令還可以計算正確匹配的數量。帶有 -c
選項的 grep
命令列印正確匹配的計數。
在下圖中,我們使用帶有 -i
選項的 grep
命令來檢查 delft.txt
中的模式 Havard
。該命令找到兩個正確的匹配項。
然後我們使用相同的命令,但是這一次,我們包含了 -c
選項來列印正確匹配的數量,並且該命令顯示數字 2
。
這意味著 delft.txt
檔案中的模式 Havard
有兩個正確匹配項。
在 Linux 中使用 grep
命令提供匹配的檔名
grep
命令可以給出包含匹配項的檔名。使用帶有 -l
選項的 grep
命令會顯示包含與模式匹配的檔名。
我們舉例說明如何使用 grep
命令返回與模式匹配的檔名。我們在 foo
目錄中工作,它有兩個檔案,delft.txt
和 example.txt
。
使用 cat
命令將兩個檔案的內容顯示到標準輸出。
我們使用帶有 -l
選項的 grep
命令並將模式設定為 text
,並傳入萬用字元*
作為 grep
命令的最後一個引數。
-l
選項告訴 grep
命令僅顯示包含匹配項的檔名,而不顯示檔案中的行。
萬用字元 *
告訴 grep
命令搜尋當前目錄中的所有檔案。
grep
命令列印檔名 example.txt
因為在此檔案中找到了模式匹配。
在 Linux 中使用 grep
命令匹配精確模式
我們還可以使用 grep
命令來匹配確切的模式。為此,我們使用帶有 -w
選項的 grep
命令。
下圖顯示了使用 grep
命令來匹配確切的模式。我們有一個名為 delft.txt
的文字檔案。我們使用 cat
命令將 delft.txt
檔案的內容顯示到標準輸出。
使用帶有 -w
選項的 grep
命令來匹配 delft.txt
檔案中 Havard
的確切模式。 -w
選項告訴 grep
命令匹配整個模式。
此選項考慮模式和檔案中資料之間的大小寫區別。
grep
命令將具有確切模式的行顯示到標準輸出。
在 Linux 中使用 grep
命令僅顯示匹配的模式
使用 grep
命令,我們只能顯示包含匹配項的行部分。我們使用帶有 -o
選項的 grep
命令。
我們在 foo
目錄中,其中包含下圖中的 delft.txt
檔案。我們使用 cat
命令將檔案的內容顯示到標準輸出。
使用帶有 -o
選項的 grep
命令來匹配 delft.txt
檔案中的模式 Yale
。模式匹配考慮了模式和檔案中資料之間的大小寫差異。 -o
選項告訴 grep
命令只列印匹配的行部分。
輸出顯示 grep
命令僅顯示與模式匹配的部分。
在 Linux 中使用 grep
命令顯示行號
使用 grep
命令,我們還可以顯示包含模式匹配的行號。我們可以使用帶有 -n
選項的 grep
命令來顯示包含模式匹配的行號。
在下圖中,我們在 foo
目錄中工作。
foo
目錄包含一個名為 delft.txt
的檔案。我們使用 cat
命令將 delft.txt
的內容列印到標準輸出。
使用帶有 -i
和 -n
選項的 grep
命令來匹配 delft.txt
檔案中的模式 Yale
。-i
告訴 grep
命令忽略模式和檔案中資料之間的大小寫差異。 -n
選項告訴 grep
命令列印出匹配的行號。
從輸出中,我們可以看到已經為包含匹配項的行列印了行號。
在 Linux 中使用 grep
命令反轉模式匹配
使用 grep
命令,我們可以顯示所有不包含與模式匹配的檔案行。我們可以使用帶有 -v
選項的 grep
命令。
-v
選項告訴 grep
命令只顯示那些與提供的模式不匹配的行。
在下圖中,我們在 foo
目錄中工作。
foo
目錄有 delft.txt
檔案。我們使用 cat
命令將 delft.txt
檔案的內容顯示到標準輸出。
我們使用帶有 -v
選項的 grep
命令來顯示與 delft.txt
檔案中的 MIT
模式不匹配的所有行。輸出顯示所有不包含 MIT
模式的行。
在 Linux 中使用 grep
命令匹配起始字串
我們可以使用 grep
命令顯示檔案中以特定字串模式開頭的所有行。我們可以通過使用^
正規表示式模式來做到這一點。
^
指定匹配應該是以^
之前的模式開頭的行。
在下圖中,我們將 grep
命令的匹配項指定為^J
。這意味著 grep
命令應該在 delft.txt
檔案中查詢以字母 J
開頭的行。
標準終端上的輸出顯示了 delft.txt
檔案中所有以字母 J
開頭的行。
在 Linux 中使用 grep
命令匹配行尾
grep
命令還可以匹配以特定模式結尾的行。我們使用 $
正規表示式來匹配行尾。
我們在下圖中將 grep
命令的匹配項指定為 rd$
。這意味著 grep 命令應該在 delft.txt
檔案中查詢以字串模式 rd
結尾的行。
成功匹配模式的兩行已顯示到標準終端。