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 結尾的行。
成功匹配模式的兩行已顯示到標準終端。

