相信很多系統維運人員都會處理到臨時要調整系統資訊,但是因為一台主機上有很多個設定檔案與程式碼,怕一不小心漏改到造成系統錯誤,這時候可以使用grep這個指令來輔助搜尋,在Linux中提供不少方便的grep函式供系統管理人員使用,但由於內建函式眾多,我只提供日常比較常用的函式供你參考,我也順便紀錄下來當作備忘錄,也希望藉由此次分享讓初學者能更快掌握相關語法。
Table of Contents
測試資料
檔案名稱可以用furnituredb.txt,使用vim furnituredb.txt建立並將以下資料貼入即可開始測試
grep基本用法:
1.搜尋特定檔案內的關鍵字
grep “關鍵字” 檔案名稱
2.搜尋特定目錄下所有檔案,包含關鍵字的檔案找出來
grep -r “關鍵字” 目錄名稱
3.搜尋特定檔案內的關鍵字並且忽略大小寫
grep -i “關鍵字” 檔案名稱
4.使用正則運算式搜尋
grep -E “正則運算式” 檔案名稱
5.使用反向搜尋
grep -v “不想被搜尋出來的關鍵字” 檔案名稱
6.顯示行號
grep -n “關鍵字” 檔案名稱
7.ls顯示特定關鍵字的檔案
ls -l | grep 關鍵字
常用的正則運算式範例
.:匹配任何單個字元
grep “a.ple”:搜尋如 “apple”、”ample”
[abc]:匹配字元集中的任何一個字元
grep “[aeiou]”:搜尋包含任何母音字母的行。
[a-z]:匹配從 ‘a’ 到 ‘z’ 之間的任何字元
grep “[0-9]”:搜尋包含數字的資料行。
[^abc]:匹配不在字元集中的任何字元
grep “[^0-9]”:搜尋不包含數字的資料行
*:匹配前一個字元的零個或多個重複
+:匹配前一個字元的一個或多個重複
grep “ap*le”:搜尋如 “ale”、”apple”、”appple” 等的資料行
{n}:匹配前一個字元的精確重複 n 次
{n,}:匹配前一個字元至少重複 n 次
{n,m}:匹配前一個字元重複 n 到 m 次
grep “ap{2}le”:搜尋如 “apple” 之類的行,但不匹配 “ale”
^:匹配行的開頭
$:匹配行的末尾
grep “^apple”:搜尋以 “apple” 開頭的資料行
grep “apple$”:搜尋以 “apple” 結尾的資料行
\b:匹配單詞邊界
grep “\bword\b”:搜尋包含獨立單字 “word” 的資料行
Reference
- ubuntu官方網站:官方連結

你好,我是RD爸,希望透過我的紀錄,可以帶給你一些新的想法~ 專注於各式3C產品的開箱評測、程式相關技術及理財筆記。
email ►market@rdpapa.tw