Linux基本命令篇 —— grep命令

????????grep是Linux/Unix系統中一個非常強大的文本搜索工具,它的名字來源于"Global Regular Expression Print"(全局正則表達式打印)。grep命令用于在文件中搜索包含特定模式的行,并將匹配的行打印出來。

目錄

一、基本語法

二、常用選項

三、基本用法示例

在文件中搜索字符串

忽略大小寫搜索

顯示匹配行的行號

統計匹配行數

遞歸搜索目錄

反向匹配(顯示不包含模式的行)

搜索多個文件

使用通配符搜索多個文件

四、高級用法

使用正則表達式

顯示匹配行及其前后內容

搜索壓縮文件

管道結合使用

使用擴展正則表達式

高亮顯示匹配結果

五、實際應用場景

查找日志中的錯誤信息

統計代碼中某個函數出現的次數

查找包含特定IP地址的日志行

查找空行

查找非空行

在多文件中查找并顯示文件名


一、基本語法

grep [選項] 模式 [文件...]

二、常用選項

選項描述
-i忽略大小寫
-v反向匹配,顯示不包含模式的行
-n顯示匹配行的行號
-c只顯示匹配的行數
-l只顯示包含匹配項的文件名
-L只顯示不包含匹配項的文件名
-r?或?-R遞歸搜索子目錄
-w匹配整個單詞
-A n顯示匹配行及其后n行
-B n顯示匹配行及其前n行
-C n顯示匹配行及其前后各n行
-E使用擴展正則表達式(等同于egrep)
-F將模式視為固定字符串而非正則表達式(等同于fgrep)
--color高亮顯示匹配部分

三、基本用法示例

  1. 在文件中搜索字符串

    grep "search_pattern" file.txt

  2. 忽略大小寫搜索

    grep -i "pattern" file.txt

  3. 顯示匹配行的行號

    grep -n "pattern" file.txt

  4. 統計匹配行數

    grep -c "pattern" file.txt

  5. 遞歸搜索目錄

    grep -r "pattern" /path/to/directory

  6. 反向匹配(顯示不包含模式的行)

    grep -v "pattern" file.txt

  7. 搜索多個文件

    grep "pattern" file1.txt file2.txt

  8. 使用通配符搜索多個文件

    grep "pattern" *.log

四、高級用法

  1. 使用正則表達式

    grep "^start" file.txt      # 匹配以"start"開頭的行
    grep "end$" file.txt        # 匹配以"end"結尾的行
    grep "[0-9]" file.txt       # 匹配包含數字的行
  2. 顯示匹配行及其前后內容

    grep -A 2 "pattern" file2.txt  # 顯示匹配行及后2行
    grep -B 2 "pattern" file2.txt  # 顯示匹配行及前2行
    grep -C 2 "pattern" file2.txt  # 顯示匹配行及前后各2行

  3. 搜索壓縮文件

    zgrep "pattern" file.gz      # 搜索gzip壓縮文件
    bzgrep "pattern" file.bz2    # 搜索bzip2壓縮文件
  4. 管道結合使用

    cat file.txt | grep -v "exclude_"

  5. 使用擴展正則表達式

    grep -E "pattern1|pattern2" file.txt  # 匹配pattern1或pattern2

  6. 高亮顯示匹配結果

    grep --color=auto "pattern" file.txt


五、實際應用場景

  1. 查找日志中的錯誤信息

    grep -i "error" /var/log/syslog
  2. 統計代碼中某個函數出現的次數

    grep -c "function_name" *.c
  3. 查找包含特定IP地址的日志行

    grep "192\.168\.1\.100" /var/log/auth.log
  4. 查找空行

    grep "^$" file.txt
  5. 查找非空行

    grep -v "^$" file.txt
  6. 在多文件中查找并顯示文件名

    grep -l "main" *.c

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

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

相關文章

蒼穹外賣問題系列之 蒼穹外賣訂單詳情前端界面和網課給的不一樣

問題 如圖,我的前端界面和網課里面給的不一樣,沒有“申請退款”和一些其他的該有的東西。 原因分析 “合計”這一欄顯示undefined說明我們的總金額沒有輸入進去。可以看看訂單提交那塊的代碼,是否可以正確輸出。還有就是訂單詳細界面展示這…

CppCon 2018 學習:EMULATING THE NINTENDO 3DS

我們來逐個分析一下這個 組件交互模型 和 仿真 & 序列化 的關系,特別是主線程(Main Thread)與其他系統組件之間的交互。 1. Main Thread — simple (basically memcpy) --> GPU Main Thread(主線程)負責游戲的…

[Python 基礎課程]數字

數字 數字數據類型用于存儲數值,比如整數、小數等。數據類型是不允許改變的,這就意味著如果改變數字數據類型的值,將重新分配內存空間。 創建數字類型的變量: var1 1 var2 10創建完變量后,如果想廢棄掉這個變量&a…

Linux CentOS環境下Java連接MySQL數據庫指南

文章目錄 前言一、環境準備1.1 系統更新1.2 Java環境安裝1.3 MySQL數據庫安裝1.4 下載JDBC驅動 二、編寫Java程序2.1 代碼如下2.2 編譯和運行2.3 驗證創建結果 三、代碼上傳至Gitee3.1 安裝配置Git3.2 克隆倉庫到本地3.3 添加Java項目文件3.4 提交代碼到本地倉庫3.5 推送到Gite…

LLM面試12

訊飛算法工程師面試題 SVM核函數能否映射到無窮維 可以的,多項式核函數將低維數據映射到高維(維度是有限的),而高斯核函數可以映射到無窮維。由 描述下xgb原理,損失函數 首先需要說一說GBDT,它是一種基于boosting增強…

類加載生命周期與內存區域詳解

類加載生命周期與內存區域詳解 Java 類加載的生命周期包括加載、驗證、準備、解析、初始化五個階段,每個階段在內存中的存儲區域和賦值機制各有不同。以下是詳細解析: 一、類加載生命周期階段 1. 加載(Loading) 內存區域&…

正交視圖三維重建2 筆記 2d線到3d線2 先生成3d線然后判斷3d線在不在

應該先連線再判斷線在不在 if(fx1tx1&&tx1tx2){ const A[fx1, fy1, ty1];const Ahat[fx1, fy1, ty2];drawlines(A[0], A[1], A[2], Ahat[0], Ahat[1], Ahat[2], lineId, type,2);}if(fx2tx1&&tx1tx2){ const B[fx2, fy2, ty1];const Bhat[fx2, fy2, ty2];drawl…

Hibernate對象生命周期全解析

Hibernate對象生命周期詳解 Hibernate作為Java領域主流的ORM框架,其核心機制之一就是對持久化對象生命周期的管理。理解Hibernate對象生命周期對于正確使用Hibernate進行數據持久化操作至關重要。Hibernate將對象分為三種主要狀態:瞬時態(Transient)、持久態(Persistent)和游…

MCP 協議使用核心講解

📄 MCP 協議使用核心講解 ? MCP 協議的核心在于以下幾個方面 一、MCP 請求結構(MCPRequest) {"messages": [{"role": "user","content": "幫我查詢一下上海的天氣"}],"tools"…

云計算中的幾何方法:曲面變形的可視化與動畫-AI云計算數值分析和代碼驗證

著重強調微分方程底層的幾何和代數結構,以進行更深入的分析和求解方法。開發結構保持的數值方法,以在計算中保持定性特征。統一符號和數值方法,實現有效的數學建模。利用幾何解釋(如雙曲幾何)求解經典微分方程。利用計…

OpenCV篇——項目(一)OCR識別讀取銀行卡號碼

目錄 信用卡數字識別系統:前言與代碼解析 前言 項目代碼 ??????結果演示 代碼模塊解析 1. 參數解析模塊 2. 輪廓排序函數 3. 圖像預處理模塊 4. 輸入圖像處理流程 5. 卡號區域定位 6. 數字識別與輸出 系統優勢 信用卡數字識別系統:前言…

Adobe AI高效設計秘籍與創新思維進階

開篇:十年設計征途,Adobe賦能創意飛翔 作為一名在設計領域耕耘十年的旅居職業設計師,我得益于英國帕維斯經濟與音樂學院(Parvis School of Economics and Music)提供的Adobe正版教育訂閱,得以持續探索技術…

vc formal實例

命令: module load gui 方式啟動命令, 看一下cc_pinmux.tcl 里面有什么: 工具feature 的設置,不太懂 對特定模塊做blackbox, library file, 一般是工具無法識別的模塊,例如 IO lib,memory lib,analog lib, 內部有 …

JavaScript取值get的json/url/普通對象參考

dstore.on(datachanged,function(dstore){ for(i0;i<dstore.getCount();i){ var a dstore.getAt(i); var imp_infoa.get(imp_info); 上面這段JS代碼&#xff0c;imp_info取到的是一長串KEY和VALUE組成的內容&#xff0c;我怎樣可以準確獲取其中一…

【C++】偵測按鍵事件

偵測按鍵事件可以用C的conio.h頭文件&#xff0c;用到的函數&#xff1a; _CRTIMP int __cdecl _getch(void); 輸入以下代碼&#xff1a; #include <iostream> #include <conio.h> using namespace std;int main() {char key;while (true) {cout << "…

Coremail受邀亮相華為開發者大會

6月20-22日&#xff0c;為期三天的HDC.2025華為開發者大會在東莞舉行&#xff0c;全球超過1.2萬名開發者匯聚現場&#xff0c;聚焦鴻蒙生態、AI技術及產業合作。Coremail作為鴻蒙生態的核心伙伴和深度參與者受邀出席&#xff0c;并獲得“智慧辦公最佳產品合作伙伴”獎項。 HDC.…

視頻斷點續播全棧實現:基于HTML5前端與Spring Boot后端

文章目錄 視頻斷點續播功能實現方案核心思路前端實現HTML結構JavaScript實現Spring Boot后端實現1.依賴配置(pom.xml)2.實體類3.存儲庫接口4.服務層5. 控制器實現要點視頻斷點續播功能構思圖流程說明用戶交互:前端核心功能:后端處理:數據存儲:?? 我的個人網站:樂樂主題創…

華為設備 QoS 流分類與流標記深度解析及實驗腳本

一、引言 在復雜網絡環境中&#xff0c;不同業務對網絡質量需求各異。語音通話要求低時延、視頻直播依賴高帶寬、普通文件傳輸對丟包容忍度相對較高 。QoS&#xff08;Quality of Service&#xff0c;服務質量&#xff09;技術通過流分類、流標記等手段&#xff0c;為不同業務…

[論文閱讀] 人工智能 + 軟件工程 | 從軟件工程視角看大語言模型:挑戰與未來之路

從軟件工程視角看大語言模型&#xff1a;挑戰與未來之路 論文標題&#xff1a;Software Engineering for Large Language Models: Research Status, Challenges and the Road Ahead arXiv:2506.23762 Software Engineering for Large Language Models: Research Status, Chall…

【Docker基礎】Docker容器管理:docker rm及其參數詳解

目錄 1 Docker容器生命周期概述 2 docker rm命令基礎 2.1 命令基本語法 2.2 命令功能說明 2.3 基本使用示例 3 docker rm參數詳解 3.1 -f, --force 3.2 -v, --volumes 3.3 -l, --link 3.4 --time 4 docker rm高級用法 4.1 批量刪除容器 4.1.1 刪除所有已停止的容器…