grep 命令作為 linux 文本處理三劍客的一員,另外兩個是 sed 和 awk,它們會在后續章節中作詳細介紹。
grep 命令的由來可以追溯到 UNIX 誕生的早期,在 UNIX 系統中,搜索的模式(patterns)被稱為正則表達式(regular expressions),為了要徹底搜索一個文件,有的用戶在要搜索的字符串前加上前綴 global(全面的),一旦找到相匹配的內容,用戶就像將其輸出(print)到屏幕上,而將這一系列的操作整合到一起就是 global regular expressions print,而這也就是 grep 命令的全稱。| 通配符 | 功能 |
|---|---|
| c* | 將匹配 0 個(即空白)或多個字符 c(c 為任一字符)。 |
| . | 將匹配任何一個字符,且只能是一個字符。 |
| [xyz] | 匹配方括號中的任意一個字符。 |
| [^xyz] | 匹配除方括號中字符外的所有字符。 |
| ^ | 鎖定行的開頭。 |
| $ | 鎖定行的結尾。 |
[root@localhost ~]# grep [選項] 模式 文件名
這里的模式,要么是字符(串),要么是正則表達式。而此命令常用的選項以及各自的含義如表 2 所示。| 選項 | 含義 |
|---|---|
| -c | 僅列出文件中包含模式的行數。 |
| -i | 忽略模式中的字母大小寫。 |
| -l | 列出帶有匹配行的文件名。 |
| -n | 在每一行的最前面列出行號。 |
| -v | 列出沒有匹配模式的行。 |
| -w | 把表達式當做一個完整的單字符來搜尋,忽略那些部分匹配的行。 |
[root@localhost ~]# grep CLERK emp.data
#忽略輸出內容
[root@localhost ~]# grep -c CLERK emp.data
#忽略輸出內容
[root@localhost ~]# grep ^78 emp.data
#忽略輸出內容
新聞熱點
疑難解答