Linux grep 命令詳解及示例大全

文章目錄

      • 一、基本語法
      • 二、常用選項及示例
        • 1. 基本匹配:查找包含某字符串的行
        • 2. 忽略大小寫匹配 -i
        • 3. 顯示行號 -n
        • 4. 遞歸查找目錄下的文件 -r 或 -R
        • 5. 僅顯示匹配的字符串 -o
        • 6. 使用正則表達式 -E(擴展)或 egrep
        • 7. 顯示匹配前后行 -A, -B, -C
        • 8. 統計匹配的行數 -c
        • 9. 僅顯示文件名 -l(小寫 L)
        • 10. 僅顯示不匹配的行 -v
        • 11. 匹配整詞 -w
        • 12. 匹配整行 -x
        • 13. 查找多個關鍵字 -e
        • 14. 在輸出中高亮匹配內容 --color
        • 15. 查找二進制文件中的字符串 -a
      • 三、實用技巧合集
        • 1. 查找所有包含 IPv4 地址的行
        • 2. 排除某些文件類型
        • 3. 將結果輸出到新文件
      • 四、總結

grep(Global Regular Expression Print)是 Linux/Unix 中非常強大的文本搜索工具,用于查找符合條件的字符串。它支持正則表達式、遞歸搜索、高亮顯示等功能,是開發、運維人員的常用工具之一。

本文將全面介紹 grep 命令的常用選項,并結合示例幫助你掌握其使用技巧。

一、基本語法

grep [選項] '模式' 文件

二、常用選項及示例

1. 基本匹配:查找包含某字符串的行
grep "main" hello.c

說明:查找 hello.c 文件中所有包含 main 的行。

2. 忽略大小寫匹配 -i
grep -i "hello" example.txt

說明:無論大小寫,匹配 hello、Hello、HELLO 等。

3. 顯示行號 -n
grep -n "return" hello.c

說明:顯示每一行匹配內容所在的行號,便于定位。

4. 遞歸查找目錄下的文件 -r 或 -R
grep -r "TODO" ./src/

說明:遞歸搜索 ./src/ 目錄下所有文件中包含 TODO 的行。

5. 僅顯示匹配的字符串 -o
grep -o "[0-9]\{3\}-[0-9]\{4\}" phones.txt

說明:只輸出匹配的電話號碼格式(如 123-4567),不顯示整行。

6. 使用正則表達式 -E(擴展)或 egrep
grep -E "jpg|png|gif" files.txt

或者

egrep "jpg|png|gif" files.txt

說明:查找包含 jpg、png 或 gif 的行。

7. 顯示匹配前后行 -A, -B, -C
grep -A 2 "error" log.txt

說明:顯示匹配到 error 的行及其后面兩行。

grep -B 2 "error" log.txt

說明:顯示匹配行及其前兩行。

grep -C 2 "error" log.txt

說明:顯示匹配行以及前后各兩行。

8. 統計匹配的行數 -c
grep -c "include" hello.c

說明:統計包含 include 的行數。

9. 僅顯示文件名 -l(小寫 L)
grep -l "main" *.c

說明:列出所有包含 main 的 .c 文件名。

10. 僅顯示不匹配的行 -v
grep -v "^#" config.txt

說明:顯示不以 # 開頭的行(忽略注釋)。

11. 匹配整詞 -w
grep -w "int" hello.c

說明:只匹配單獨出現的 int,不會匹配 print 或 integer。

12. 匹配整行 -x
grep -x "int main()" hello.c

說明:僅當整行完全匹配 int main() 時才顯示。

13. 查找多個關鍵字 -e
grep -e "error" -e "fail" log.txt

說明:匹配包含 error 或 fail 的行。

14. 在輸出中高亮匹配內容 --color
grep --color "main" hello.c

說明:將 main 高亮顯示,方便快速識別。

15. 查找二進制文件中的字符串 -a
grep -a "PNG" image.png

說明:將二進制文件當作文本處理,可用于檢查文件頭等。

三、實用技巧合集

1. 查找所有包含 IPv4 地址的行
grep -Eo "[0-9]{1,3}(\.[0-9]{1,3}){3}" access.log
2. 排除某些文件類型
grep -r --exclude="*.o" "malloc" .
3. 將結果輸出到新文件
grep "define" config.h > defines.txt

四、總結

選項 含義
-i 忽略大小寫
-n 顯示行號
-v 反向匹配
-c 統計匹配行數
-l 只顯示文件名
-r 遞歸查找目錄
-o 僅輸出匹配部分
-A/-B/-C 顯示匹配前后行
–color 高亮顯示
-E / egrep 擴展正則

掌握 grep,你就擁有了一把在文本中快速定位問題的“放大鏡”。無論是日志分析、源碼檢索,還是數據提取,grep 都能大大提高你的效率。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/78705.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/78705.shtml
英文地址,請注明出處:http://en.pswp.cn/web/78705.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【排序算法】快速排序(全坤式超詳解)———有這一篇就夠啦

【排序算法】——快速排序 目錄 一:快速排序——思想 二:快速排序——分析 三:快速排序——動態演示圖 四:快速排序——單趟排序 4.1:霍爾法 4.2:挖坑法 4.3:前后指針法 五:…

【platform push 提示 Invalid source ref: HEAD】

platform push 提示 Invalid source ref: HEAD 場景:環境:排查過程:解決: 場景: 使用platform push 命令行輸入git -v 可以輸出git 版本號,但就是提示Invalid source ref: HEAD,platform creat…

x-cmd install | Tuistash - Logstash 實時監控,告別圖形界面,高效便捷!

目錄 核心優勢,一覽無遺安裝適用場景,廣泛覆蓋功能亮點,不容錯過 還在為 Logstash 的監控而頭疼嗎?還在頻繁切換圖形界面查看數據嗎?現在,有了 Tuistash,一切都將變得簡單高效! Tui…

【JEECG】BasicTable單元格編輯,插槽添加下拉組件樣式錯位

1.功能說明 BasicTable表格利用插槽&#xff0c;添加組件實現單元格編輯功能&#xff0c;選擇組件下拉框錯位 2.效果展示 3.解決方案 插槽內組件增加&#xff1a;:getPopupContainer"getPopupContainer" <template #salesOrderProductStatus"{ column, re…

論文閱讀筆記——ROBOGROUND: Robotic Manipulation with Grounded Vision-Language Priors

RoboGround 論文 一類中間表征是語言指令&#xff0c;但對于空間位置描述過于模糊&#xff08;“把杯子放桌上”但不知道放桌上哪里&#xff09;&#xff1b;另一類是目標圖像或點流&#xff0c;但是開銷大&#xff1b;由此 GeoDEX 提出一種兼具二者的掩碼。 相比于 GR-1&#…

K8S的使用(部署pod\service)+安裝kubesphere圖形化界面使用和操作

master節點中通過命令部署一個tomcat 查看tomcat被部署到哪個節點上 在節點3中進行查看 在節點3中進行停止容器&#xff0c;K8S會重新拉起一個服務 如果直接停用節點3&#xff08;模擬服務器宕機&#xff09;&#xff0c;則K8S會重新在節點2中拉起一個服務 暴露tomcat訪…

紛析云開源財務軟件:重新定義企業財務自主權

痛點直擊&#xff1a;傳統財務管理的三大桎梏 “黑盒”困局 閉源商業軟件代碼不可見&#xff0c;企業無法自主調整功能&#xff0c;政策變化或業務升級依賴廠商排期&#xff0c;響應滯后。 數據托管于第三方平臺&#xff0c;存在泄露風險&#xff0c;合規審計被動受限。 成本…

mybatis 的多表查詢

文章目錄 多表查詢一對一一對多 多表查詢 一對一 開啟代碼片段編寫 專注于 SQL的 編寫 JDBC 的寫法&#xff0c;注重于 SQL mybatis 在 一對一查詢時&#xff0c;核心在于 建立每個表對應的實體類主鍵根據 主鍵 id 進行查詢&#xff0c;副標根據 設定外鍵進行查詢 在 SQL編寫…

Scrapy爬蟲實戰:如何用Rules實現高效數據采集

Scrapy是一個強大的Python爬蟲框架&#xff0c;而其中的Rules類則為爬蟲提供了更高級的控制方式。本文將詳細介紹如何在Scrapy中使用Rules&#xff0c;以及各個參數的具體作用&#xff0c;并結合實際場景說明Rules的必要性。 為什么需要Rules&#xff1f; 在Web爬取過程中&…

ActiveMQ 性能優化與網絡配置實戰(一)

一、引言 在當今分布式系統和微服務架構盛行的時代&#xff0c;消息中間件作為實現系統間異步通信、解耦和削峰填谷的關鍵組件&#xff0c;其重要性不言而喻。ActiveMQ 作為一款廣泛應用的開源消息中間件&#xff0c;憑借其對多種消息協議的支持、靈活的部署方式以及豐富的功能…

免費視頻壓縮軟件

一、本地軟件&#xff08;支持離線使用&#xff09; 1. HandBrake 平臺&#xff1a;Windows / macOS / Linux 特點&#xff1a;開源免費&#xff0c;支持多種格式轉換&#xff0c;提供豐富的預設選項&#xff08;如“Fast 1080p”快速壓縮&#xff09;&#xff0c;可自定義分…

消除AttributeError: module ‘ttsfrd‘ has no attribute ‘TtsFrontendEngine‘報錯輸出的記錄

#工作記錄 嘗試消除 消除“模塊ttsfrd沒有屬性ttsfrontendengine”的錯誤的記錄 報錯摘錄&#xff1a; Traceback (most recent call last): File "F:\PythonProjects\CosyVoice\webui.py", line 188, in <module> cosyvoice CosyVoice(args.model_di…

Acrel-EIoT 能源物聯網云平臺在能耗監測系統中的創新設計

摘要 隨著能源管理的重要性日益凸顯&#xff0c;能耗監測系統成為實現能源高效利用的關鍵手段。本文詳細介紹了基于安科瑞Acrel-EIoT能源物聯網云平臺的能耗監測系統的設計架構與應用實踐。該平臺采用分層分布式結構&#xff0c;涵蓋感知層、網絡層、平臺層和應用層&#xff0…

計算機網絡-同等學力計算機綜合真題及答案

計算機網絡-同等學力計算機綜合真題及答案 &#xff08;2003-2024&#xff09; 2003 年網絡 第二部分 計算機網絡&#xff08;共 30 分&#xff09; &#xff08;因大綱變動因此 2004 年真題僅附真題&#xff0c;不作解析。&#xff09; 一、填空題&#xff08;共 10 分&#…

PyTorch常用命令詳解:助力深度學習開發

&#x1f4cc; 友情提示&#xff1a; 本文內容由銀河易創AI&#xff08;https://ai.eaigx.com&#xff09;創作平臺的gpt-4-turbo模型生成&#xff0c;旨在提供技術參考與靈感啟發。文中觀點或代碼示例需結合實際情況驗證&#xff0c;建議讀者通過官方文檔或實踐進一步確認其準…

深度學習:梯度下降法的數學原理

梯度下降法——是一種最優化算法,用于找到函數的局部極小值或全局最小值。它基于函數的梯度(或偏導數)信息來更新參數,目標是通過逐漸調整參數值來最小化目標函數的值。在機器學習算法中,梯度下降是最常采用的方法之一,尤其是在深度學習模型中,BP反向傳播方法的核心就是…

刷leetcodehot100返航版--哈希表5/5、5/6

回顧一下之前做的哈希&#xff0c;貌似只有用到 unordered_set&#xff1a;存儲無序元素unordered_map&#xff1a;存儲無序鍵值對 代碼隨想錄 常用代碼模板2——數據結構 - AcWing C知識回顧-CSDN博客 1.兩數之和5/5【30min】 1. 兩數之和 - 力扣&#xff08;LeetCode&am…

openwrt 使用quilt 打補丁(patch)

1,引入 本文簡單解釋如何在OpenWRT下通過quilt命令打補丁--patch&#xff0c;也可查看openwrt官網提供的文檔 2&#xff0c;以下代碼通過編譯net-snmp介紹 ① 執行編譯命令之后&#xff0c;進入build_dir的net-snmp-5.9.1目錄下&#xff0c;改目錄即為snmp最終編譯的目錄了 /…

【開發工具】Window安裝WSL及配置Vscode獲得Linux開發環境

筆者面試時需要本地IDE手撕代碼并測試&#xff0c;但是windows開發環境用不習慣&#xff0c;Min64和json配置也比較麻煩&#xff0c;因此采用WSLvscode的方式快速配置Linux開發環境 WSL安裝 直接在微軟商店搜索WSL即可 系統設置 開始菜單搜索啟用或關閉 Windows 功能&…

【C語言】初階數據結構相關習題(一)

&#x1f386;個人主頁&#xff1a;夜晚中的人海 今日語錄&#xff1a;人的生命似洪水在奔流&#xff0c;不遇著島嶼、暗礁&#xff0c;難以激起美麗的浪花。——奧斯特洛夫斯基 文章目錄 ?一、判定是否互為字符重排&#x1f389;二、 回文排列&#x1f680;三、字符串壓縮&am…