Linux grep 命令到底有多強?90% 的人只會用最簡單的用法!
你有沒有遇到過這種情況?
- 日志文件太大,想找某個關(guān)鍵字,翻得眼花繚亂?
- 代碼里某個變量到底在哪改的,找半天都沒找到?
- 成百上千個文件里,想找某個特定的內(nèi)容,手動翻找效率太低?
如果你還在一行行地 Ctrl + F 查找內(nèi)容,那你真的該認識一下 Linux 里最強大的查找工具——grep!它不僅能幫你 快速定位 關(guān)鍵內(nèi)容,還能 支持正則匹配、多文件查找、高亮顯示,讓你在海量數(shù)據(jù)中一秒找到目標(biāo)!
今天,我們就用 大白話 + 實戰(zhàn) 帶你徹底學(xué)會 grep,讓你告別低效查找,成為 Linux 命令行高手!
一、grep 到底是干嘛的?
一句話總結(jié): grep 是 Linux 里的 文本搜索神器,能在 文件、日志、代碼 里 快速搜索 你想找的內(nèi)容。
比如,你有個日志文件 server.log,想找出里面 出現(xiàn) “error” 的所有行,如果你用鼠標(biāo)翻,可能要幾分鐘,但用 grep 只要 1 秒鐘:
grep "error" server.log
是不是很酷?接下來,我們就來看看 grep 的常用玩法!
二、最常用的 grep 語法
1. 基本用法:查找關(guān)鍵詞
查找文件中包含某個關(guān)鍵詞的行
grep "hello" myfile.txt
解釋:這個命令會在 myfile.txt 里查找 包含 "hello" 的所有行,然后把結(jié)果打印出來。
2. 忽略大小寫
大小寫不敏感匹配(比如 Error 和 error 都能找到)
grep -i "error" server.log
解釋:-i 讓 grep忽略大小寫,比如 ERROR、Error、error,統(tǒng)統(tǒng)都能匹配出來!
3. 遞歸查找:在多個文件中查找
想找某個關(guān)鍵詞在哪個文件里出現(xiàn)了?
grep -r "main()" .
解釋:
- -r 讓 grep 進入 當(dāng)前目錄的所有文件和子目錄 里查找 "main()"。
- 這個對 查找代碼里的某個函數(shù)、某個變量 非常有用!
4. 顯示行號
查找時順便顯示行號,方便定位
grep -n "password" config.txt
解釋:-n 讓 grep 顯示匹配的行 在文件里的行號,這樣你就能一眼找到它在哪。
5. 只顯示匹配的文件
當(dāng)你在一堆文件里找內(nèi)容時,只想知道哪些文件包含這個關(guān)鍵詞
grep -l "TODO" *.c
解釋:-l 只顯示 包含 "TODO" 的文件名,不會輸出具體匹配內(nèi)容。
6. 反向查找(排除某些內(nèi)容)
想找不包含某個關(guān)鍵詞的行?
grep -v "debug" log.txt
解釋:-v 讓 grep排除 包含 "debug" 的行,輸出 不含 "debug" 的內(nèi)容。
7. 顯示匹配的上下文
只看匹配行可能不夠,想看看前后幾行內(nèi)容?
grep -C 5 "error" server.log
解釋:-C 5 讓 grep顯示匹配行前后 5 行,這樣你就能看到錯誤前后發(fā)生了什么。
8. 高亮顯示匹配內(nèi)容
讓匹配的部分更醒目
grep --color "error" server.log
解釋:--color 讓 grep高亮顯示匹配的內(nèi)容,這樣你就能更快地看到關(guān)鍵部分。
注意:加不加 --color 參數(shù),可能顯示結(jié)果都一樣,因為系統(tǒng)默認啟用了 --color=auto 參數(shù)。
9. 結(jié)合 -c,統(tǒng)計匹配的行數(shù)
統(tǒng)計 log.txt 里包含 "error" 的行數(shù)
grep -c "error" log.txt
解釋:-c只統(tǒng)計匹配的行數(shù),不輸出具體內(nèi)容。
適用場景:快速檢查某個關(guān)鍵詞在文件中出現(xiàn)的次數(shù),比如日志里有多少行是錯誤信息。
10. 結(jié)合 -o,只輸出匹配的關(guān)鍵內(nèi)容
從日志中提取所有 IP 地址
grep -oE "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" logs.txtgrep -oE "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" logs.txt
解釋:
- -o只輸出匹配的部分,而不是整行內(nèi)容。
- -E啟用正則,匹配 IPv4 地址。
適用場景:當(dāng)你只想提取某些關(guān)鍵信息時,比如 提取 IP、URL、郵箱等。
11. 結(jié)合 -m,限制匹配的行數(shù)
?? 查找文件中的 "error",但最多只輸出前 3 行
grep -m 3 "error" server.log
解釋:-m 3最多匹配 3 行,即使文件里有更多匹配項,也只顯示 3 行。
適用場景:當(dāng)你只想看 部分匹配內(nèi)容,避免輸出太多信息時。
12. 結(jié)合 -w,精確匹配完整單詞
只匹配完整的 "error",不匹配 "error_code" 或 "myerror"
grep -w "error" server.log
解釋:-w匹配完整單詞,比如 "error",但不會匹配 "myerror" 或 "error_code"。
適用場景:查找變量名、關(guān)鍵字,避免匹配到無關(guān)內(nèi)容。
13. 結(jié)合 -F,精準(zhǔn)匹配,不使用正則
查找包含 [ERROR] 的日志行
grep -F "[ERROR]" logs.txt
解釋:
- -F把搜索內(nèi)容當(dāng)作普通字符串,不會當(dāng)成正則表達式解析。
- 避免 [ ] . * + 這些符號被誤認為正則表達式。
適用場景:當(dāng)搜索的內(nèi)容包含 特殊字符,但你不想用正則時。
三、進階用法:組合 grep 選項,讓查找更高效!
在實際使用中,單獨使用 grep 可能不夠靈活,很多時候我們需要 組合多個選項,讓 grep 更加強大!下面是幾種常見的組合用法:
1. 結(jié)合 -r 和 -n,遞歸查找并顯示行號
?? 在當(dāng)前目錄及子目錄中,查找 "error",并顯示行號
grep -rn "error" .
// 命令解釋:在當(dāng)前目錄 (.) 及其所有子目錄中遞歸 (-r),查找包含 "error" 的文件,并顯示匹配的行號 (-n)。
解釋:-r 遞歸查找,-n 顯示行號,方便快速定位錯誤位置。
2. 結(jié)合 -v 和 -i,排除某些內(nèi)容,并忽略大小寫
查找日志中所有包含 "warning" 但不包含 "debug" 的行
grep -i "warning" server.log | grep -v "debug"
解釋:
- -i 讓 "warning" 大小寫不敏感匹配(WARNING、Warning 都能匹配)。
- grep -v "debug"把包含 "debug" 的行過濾掉,只留下我們關(guān)心的 warning 信息。
3. 結(jié)合 -l 和 -r,快速找到含有關(guān)鍵字的文件
在項目目錄中,找出所有包含 "TODO" 關(guān)鍵字的文件
grep -rl "TODO" .
命令解釋:在當(dāng)前目錄 (.) 及其所有子目錄中遞歸 (-r) 搜索包含 "TODO" 的文件,并僅顯示匹配的文件名 (-l),而不顯示具體內(nèi)容。
解釋:
- -r 遞歸查找文件。
- -l 只顯示 文件名,不會顯示匹配的具體內(nèi)容。
- 適用于 查找代碼里哪些文件包含某個關(guān)鍵詞,特別方便!
4. 結(jié)合 -A / -B / -C,按上下文查找
- 找出包含 "error" 的日志,并顯示前后 5 行
grep -C 5 "error" server.log
- 找出包含 "error" 的日志,并顯示前 5 行
grep -B 5 "error" server.log
- 找出包含 "error" 的日志,并顯示后 5 行
grep -A 5 "error" server.log
解釋:
- -C 讓 grep顯示匹配行的前后 5 行。
- -B 只顯示 前 5 行(B = Before)。
- -A 只顯示 后 5 行(A = After)。
- 適用于 查找某個錯誤發(fā)生的上下文信息,有助于分析問題。
5. 結(jié)合 |(管道符),把 grep 結(jié)果再過濾
查找日志中所有 "error" 相關(guān)內(nèi)容,但排除 "timeout"
grep "error" server.log | grep -v "timeout"
解釋:
- 先用 grep "error" 找到所有包含 "error" 的行。
- 再用 grep -v "timeout"過濾掉包含 "timeout" 的行。
- 適用于 日志分析、過濾關(guān)鍵數(shù)據(jù)。
6. 結(jié)合 -nRI,遞歸查找文本文件并顯示行號
在項目代碼中查找某個函數(shù),但忽略二進制文件
grep -nRI "init_database" .
解釋:
- -n顯示行號,方便快速定位。
- -R遞歸查找,會進入子目錄搜索所有文件。
- -I忽略二進制文件,避免 .o、.so 這些非文本文件干擾搜索結(jié)果。
適用場景:在 C/C++、Python、Shell 項目 里快速查找函數(shù)、變量的定義、以及任何其他關(guān)鍵詞。
7. 結(jié)合 xargs,批量查找多個關(guān)鍵詞
場景1: 在所有 .c 文件中查找 "error" 或 "warning"
echo -e "error\nwarning" | xargs -I {} grep -rn {} *.c
解釋:
- echo -e "error\nwarning" 生成 兩個關(guān)鍵詞。
- xargs -I {} : 把關(guān)鍵詞一個個傳給 grep 進行匹配。
適用場景:當(dāng)你需要 查找多個關(guān)鍵詞 時,比如找 "error" 和 "warning",但不想寫多個 grep 命令。
場景2:刪除所有包含 "DEBUG" 的日志文件
grep -rl "DEBUG" /var/log | xargs rm -f
解釋:
- grep -rl "DEBUG" /var/log 查找 包含 "DEBUG" 的日志文件
- xargs rm -f 把這些文件名傳給 rm 命令,批量刪除
注意:此命令不可逆,建議先用 grep -rl 確認文件后再執(zhí)行刪除!
8. 結(jié)合 tail,實時監(jiān)控日志中的關(guān)鍵字
實時監(jiān)控日志,并只顯示包含 "error" 的行
tail -f /var/log/syslog | grep --color "error"
解釋:
- tail -f持續(xù)輸出最新的日志,不需要每次手動運行。
- grep --color "error"實時匹配 "error",并高亮顯示。
適用場景:
- 服務(wù)器日志實時監(jiān)控,及時發(fā)現(xiàn)錯誤。
- 監(jiān)控 Web 服務(wù)器訪問日志(如 nginx、apache)。
9. 查找日志中所有 IP 地址(并去重)
從日志文件中提取所有出現(xiàn)過的 IP 地址,并去重
grep -oE "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" /var/log/syslog | sort | uniq
解釋:
- -o只輸出匹配的部分,不會打印整行日志,只顯示匹配的 IP 地址。
- -E啟用擴展正則,用于匹配 IPv4 地址格式(四段數(shù)字,每段 0-255 之間)。
- sort排序,讓相同的 IP 挨在一起,方便去重。
- uniq去重,讓每個 IP 只出現(xiàn)一次,防止重復(fù)數(shù)據(jù)干擾分析。
適用場景:
- 統(tǒng)計日志中有哪些訪問 IP,分析訪問來源。
- 用于網(wǎng)絡(luò)安全、服務(wù)器日志分析,查看可疑 IP。
如果你想 統(tǒng)計每個 IP 出現(xiàn)的次數(shù),可以這樣做:
grep -oE "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" /var/log/syslog | sort | uniq -c | sort -nr
解釋:
- uniq -c統(tǒng)計去重后的 IP 出現(xiàn)次數(shù)。
- sort -nr按出現(xiàn)次數(shù)從高到低排序,快速找到最常見的 IP。
適用場景:
- 識別 訪問頻率最高的 IP,防止惡意攻擊(如 DDoS)。
- 監(jiān)控日志,分析服務(wù)器訪問情況。
10. 結(jié)合 grep 和 cut,提取某列數(shù)據(jù)
場景1:從 CSV 文件中提取第二列的用戶 ID,并統(tǒng)計不同 ID 的個數(shù)
grep "成功" logs.csv | cut -d',' -f2 | sort | uniq -c
解釋:
- grep "成功" :先篩選出包含 "成功" 的行。
- cut -d',' -f2 : 提取 CSV 里用逗號分隔的第二列(假設(shè)是用戶 ID)。
- sort | uniq -c 統(tǒng)計不同用戶 ID 的出現(xiàn)次數(shù)。
適用場景:
- 數(shù)據(jù)分析,統(tǒng)計不同用戶 ID 的成功請求次數(shù)。
- 處理日志文件,提取和篩選有用數(shù)據(jù)。
場景2:提取 Nginx 訪問日志的 URL
示例日志(access.log):
192.168.1.1 - - [01/Feb/2024:12:34:56] "GET /index.html HTTP/1.1" 200 512 "-"
192.168.1.2 - - [01/Feb/2024:12:35:00] "GET /about.html HTTP/1.1" 200 432 "-"
192.168.1.3 - - [01/Feb/2024:12:35:10] "GET /contact.html HTTP/1.1" 200 654 "-"
提取所有 GET 請求的 URL:
grep "GET" access.log | cut -d'"' -f2 | cut -d' ' -f2
解釋:
- grep "GET" 過濾出 HTTP GET 請求
- cut -d'"' -f2 提取 雙引號內(nèi) 的內(nèi)容
- cut -d' ' -f2 提取 第二個字段(URL)
輸出:
/index.html
/about.html
/contact.html
統(tǒng)計訪問量最高的 URL:
grep "GET" access.log | cut -d'"' -f2 | cut -d' ' -f2 | sort | uniq -c | sort -nr
示例輸出:
5 /index.html
3 /about.html
2 /contact.html
實用場景:
- 提取網(wǎng)站訪問的 URL
- 統(tǒng)計訪問次數(shù),分析熱門頁面
簡潔高效,適用于日志分析!
11. 結(jié)合 grep 和 find,搜索指定類型的文件
在 /path 目錄遞歸查找所有 .log 文件,并在這些文件中搜索 "關(guān)鍵詞",輸出匹配的行。
find /path -type f -name "*.log" -exec grep "關(guān)鍵詞" {} +
逐步拆解
部分 | 作用 |
| 在 |
| 只查找普通文件(排除目錄等其他類型) |
| 只匹配 .log 結(jié)尾的文件(即日志文件) |
| 對查找到的文件執(zhí)行后續(xù)命令 |
| 在每個找到的日志文件中搜索 |
| 代表 |
| 批量執(zhí)行 |
例子 1:查找 /var/log/目錄下所有 *.log 文件中包含 ERROR 的行
find /var/log -type f -name "*.log" -exec grep "ERROR" {} +
實際作用:
- 先在 /var/log 目錄下查找所有 .log 文件
- 然后在這些 .log 文件中搜索 "ERROR"
- 輸出包含 "ERROR" 的 行 + 文件名
示例輸出:
/var/log/system.log:Feb 1 12:30:22 server kernel: ERROR: Disk failure detected
-exec 中 + 和 \; 的區(qū)別
① +(推薦)—— 批量執(zhí)行,提高效率:
find /var/log -type f -name "*.log" -exec grep "ERROR" {} +
find會盡可能把多個文件傳遞給 grep,減少命令執(zhí)行次數(shù),提高效率。
等效于:
grep "ERROR" file1.log file2.log file3.log
② \; —— 每個文件執(zhí)行一次,效率低
find /var/log -type f -name "*.log" -exec grep "ERROR" {} \;
find會對每個*.log文件單獨執(zhí)行g(shù)rep,效率低下。
等效于:
grep "ERROR" file1.log
grep "ERROR" file2.log
grep "ERROR" file3.log
推薦使用 +,避免對大量文件執(zhí)行 grep 時的性能問題!
例子 2:查找 *.log 文件中包含"ERROR",但排除 backup.log
find /var/log -type f -name "*.log" ! -name "backup.log" -exec grep "ERROR" {} +
作用:! -name "backup.log" 讓 find排除backup.log,防止誤搜
例子 3:統(tǒng)計 *.log 文件中"ERROR" 關(guān)鍵詞出現(xiàn)的次數(shù)
find /var/log -type f -name "*.log" -exec grep -c "ERROR" {} +
示例輸出:
/var/log/nginx/access.log: 15
/var/log/system.log: 3
grep -c 統(tǒng)計 "ERROR" 出現(xiàn)的次數(shù),適用于日志分析。
12. 結(jié)合 grep 和 head,只顯示最前面的匹配結(jié)果
在日志文件中查找 "error",只顯示最早的 5 行:
grep -i "error" /var/log/syslog | head -5
解釋:
- grep -i "error"找出所有包含 "error" 的行。
- head -5 只顯示前 5 行,避免輸出太多內(nèi)容。
適用場景:只想看看 最早發(fā)生的錯誤,不關(guān)心后面的記錄。
13. 結(jié)合 grep 和 diff,對比兩個文件的不同之處
對比 file1.log 和 file2.log,只顯示不同的行:
grep -v -f file1.log file2.log
解釋:
- -f file1.log將 file1.log 里的內(nèi)容作為匹配模板。
- grep -v排除所有在 file1.log 里已經(jīng)存在的行,最終顯示 file2.log 里有但 file1.log 里沒有的內(nèi)容。
適用場景:比較兩個日志文件的不同,找出新增的錯誤或信息。
14. 結(jié)合 grep 和 wc,統(tǒng)計不同關(guān)鍵詞的出現(xiàn)次數(shù)
統(tǒng)計日志中 "error"、"warning"、"failed" 出現(xiàn)的次數(shù)
grep -E "error|warning|failed" /var/log/syslog | wc -l
解釋:
- grep -E "error|warning|failed"匹配多個關(guān)鍵詞(支持正則表達式)。
- wc -l統(tǒng)計匹配到的行數(shù),讓你知道這些關(guān)鍵詞在日志里出現(xiàn)了多少次。
適用場景:統(tǒng)計關(guān)鍵日志事件的發(fā)生頻率,判斷是否有嚴(yán)重問題。
15. 結(jié)合 grep 和 tee,同時輸出匹配結(jié)果到終端和文件
查找日志中的 "error",并保存到 error.log:
grep -i "error" /var/log/syslog | tee error.log
解釋:
- grep -i "error"查找所有錯誤信息。
- tee error.log把結(jié)果同時輸出到終端和 error.log 文件,方便后續(xù)分析。
適用場景:需要 實時查看匹配結(jié)果,同時保存到文件 以備后續(xù)分析。
16. grep + sort | uniq:統(tǒng)計匹配內(nèi)容
統(tǒng)計 server.log 中出現(xiàn)的所有錯誤類型:
grep "ERROR" server.log | awk '{print $2}' | sort | uniq -c
解釋:
- grep "ERROR" server.log 先找出所有包含 "ERROR" 的行
- awk '{print $2}' 提取 第二列(假設(shè)錯誤類型在第二列)
- sort 排序
- uniq -c 統(tǒng)計每種錯誤類型出現(xiàn)的次數(shù)
實用場景:統(tǒng)計日志中各種錯誤的發(fā)生頻率,快速定位高頻錯誤。
17. 結(jié)合 sed,批量替換文本
批量替換日志中的 "error" 為 "ERROR"
grep -l "error" *.log | xargs sed -i 's/error/ERROR/g'
解釋:
- grep -l "error" *.log : 找到所有包含 "error" 的日志文件。
- xargs sed -i 's/error/ERROR/g' : 逐個修改這些文件,將 "error" 變成 "ERROR"。
適用場景:批量修改 文件中的內(nèi)容,避免手動修改多個文件。
18. 結(jié)合 awk,提取關(guān)鍵信息
從 access.log 里提取訪問 IP
grep "200" access.log | awk '{print $1}' | sort | uniq -c | sort -nr
解釋:
- grep "200" : 篩選返回狀態(tài)碼 200(成功訪問) 的日志。
- awk '{print $1}' : 提取日志中的第 1 列(通常是 IP 地址)。
- sort | uniq -c : 統(tǒng)計每個 IP 訪問次數(shù)。
- sort -nr : 按訪問次數(shù)從高到低排序。
適用場景:
- 分析 網(wǎng)站訪問來源,識別熱門 IP。
- 識別惡意爬蟲,發(fā)現(xiàn)異常高頻 IP。
19. grep + ps:查找正在運行的進程
檢查系統(tǒng)中是否有 nginx 進程運行
ps aux | grep "nginx"
解釋:
- ps aux 列出所有運行的進程
- grep "nginx" 過濾出包含 "nginx" 的進程
更精確的用法(排除 grep 自己):
ps aux | grep nginx | grep -v grep
或
ps aux | grep "[n]ginx"
這里的 [n]ginx 是一個小技巧,避免 grep 命令本身出現(xiàn)在結(jié)果中。
20. grep + netstat / ss:查看端口占用
查找正在使用 8080 端口的進程
netstat -tulnp | grep "8080"
解釋:
- netstat -tulnp 顯示所有監(jiān)聽的端口
- grep "8080" 過濾出使用 8080 端口的進程
如果 netstat 不可用,可以用 ss 代替:
ss -tulnp | grep "8080"
實用場景:排查端口占用問題,確認某個端口是否被某個進程占用。
四、總結(jié):學(xué)會 grep,你的查找效率起飛!
grep 是一個超級實用的工具,掌握以下幾個最常用的參數(shù),你的查找效率絕對提升 10 倍。
常用語法:
- grep "關(guān)鍵詞" 文件 —— 查找文件中的內(nèi)容
- grep -i "關(guān)鍵詞" 文件 —— 忽略大小寫
- grep -r "關(guān)鍵詞" 目錄 —— 遞歸查找文件夾中的內(nèi)容
- grep -n "關(guān)鍵詞" 文件 —— 顯示匹配的行號
- grep -v "關(guān)鍵詞" 文件 —— 反向查找,不包含關(guān)鍵詞的行
- grep -C 3 "關(guān)鍵詞" 文件 —— 顯示前后 3 行內(nèi)容
- grep --color "關(guān)鍵詞" 文件 —— 高亮顯示匹配的內(nèi)容
進階用法:組合 grep 選項,讓查找更高效!
- grep -rn "關(guān)鍵詞" . —— 遞歸查找文件,并顯示行號
- grep -ri "關(guān)鍵詞" . —— 遞歸查找,并忽略大小寫
- grep -rl "關(guān)鍵詞" . —— 遞歸查找,只顯示匹配的文件名
- grep -A 3 "關(guān)鍵詞" 文件 —— 顯示匹配行及 后 3 行
- grep -B 5 "關(guān)鍵詞" 文件 —— 顯示匹配行及 前 5 行
- grep -C 2 "關(guān)鍵詞" 文件 —— 顯示匹配行的 前后 2 行
- grep -c "關(guān)鍵詞" 文件 —— 統(tǒng)計 匹配行的數(shù)量
- grep -o "關(guān)鍵詞" 文件 —— 只顯示匹配的 關(guān)鍵詞,不輸出整行
- grep -m 5 "關(guān)鍵詞" 文件 —— 限制 輸出最多 5 行匹配內(nèi)容
- grep -w "關(guān)鍵詞" 文件 —— 精確匹配完整單詞,不匹配部分字符
- grep -F "關(guān)鍵詞" 文件 —— 純文本匹配,不使用正則表達式
- grep "關(guān)鍵詞" 文件 | grep "其他關(guān)鍵詞" —— 多次過濾,篩選更精準(zhǔn)
- grep "關(guān)鍵詞" 文件 | sort | uniq -c | sort -nr —— 統(tǒng)計關(guān)鍵詞出現(xiàn)次數(shù)
- grep -r "關(guān)鍵詞" /path | xargs grep "其他關(guān)鍵詞" —— 批量搜索多個關(guān)鍵詞
- grep "關(guān)鍵詞" 文件 | tee output.log —— 同時輸出到終端和文件
- grep "關(guān)鍵詞" 文件 | cut -d' ' -f2 —— 提取特定字段(如 URL)
- find /path -type f -name "*.log" -exec grep "關(guān)鍵詞" {} + —— 按文件類型搜索
- ps aux | grep "nginx" —— 查找 正在運行的進程
- netstat -tulnp | grep "8080" —— 查找 被占用的端口
- tail -f 文件 | grep "關(guān)鍵詞" —— 實時監(jiān)控日志,過濾關(guān)鍵內(nèi)容
- diff <(grep "關(guān)鍵詞" 文件1) <(grep "關(guān)鍵詞" 文件2) —— 對比兩個文件的匹配差異
下一步,掌握 sed 和 awk,玩轉(zhuǎn)文本處理!
grep 適合查找文本,而在 Linux 世界里,修改和格式化文本 還需要兩個更強大的工具:sed 和 awk。
- sed:強大的 文本編輯器,可以 批量替換、刪除、修改 內(nèi)容。
- awk:強大的 文本處理工具,適用于 數(shù)據(jù)提取、格式化、統(tǒng)計。