Linux 命令:grep

概述

  • 在Linux系統里,grep是一款十分實用的命令行工具,它主要用于在文件或者輸入流中搜索符合特定模式的文本。下面為你詳細介紹它的用法。
  • 資料已經分類整理好:https://pan.quark.cn/s/26d73f7dd8a7

基本語法

grep [選項] '搜索模式' [文件...]

常用選項

下面是grep命令一些常用的選項及其功能:

  • -i:在搜索時忽略大小寫差異。
  • -v:只輸出不匹配搜索模式的行。
  • -r-R:對目錄進行遞歸搜索,會搜索目錄下的所有子目錄和文件。
  • -n:在輸出結果中顯示匹配行的行號。
  • -w:只匹配完整的單詞,而不是單詞的一部分。
  • -c:統計匹配到的行數,只輸出計數結果。
  • -l:只顯示包含匹配內容的文件名,而不顯示具體的匹配行。
  • -L:只顯示不包含匹配內容的文件名。
  • -A:除了輸出匹配行,還會輸出該行后面指定數量的行。
  • -B:除了輸出匹配行,還會輸出該行前面指定數量的行。
  • -C:除了輸出匹配行,還會輸出該行前后指定數量的行。

正則表達式元字符

grep中,可以借助以下元字符構建功能強大的搜索模式:

  • .:能夠匹配任意單個字符。
  • *:表示前面的字符可以出現零次或多次。
  • ^:用于匹配行的開頭。
  • $:用于匹配行的結尾。
  • []:可以匹配方括號中指定的任意一個字符。
  • [^ ]:匹配不在方括號內的任意一個字符。
  • \(\):用于對模式進行分組。
  • \|:表示或的關系,即匹配其中一個模式。

示例

以下是一些grep命令的常見使用示例:

  1. 在單個文件中搜索特定文本
grep 'error' log.txt

該命令會在log.txt文件中搜索包含error的行。

  1. 忽略大小寫進行搜索
grep -i 'ERROR' log.txt

使用-i選項后,搜索時不會區分ERROR的大小寫,能匹配到如Errorerror等不同大小寫形式。

  1. 遞歸搜索目錄中的文件
grep -r 'pattern' /path/to/directory

此命令會遞歸地在/path/to/directory目錄下的所有文件中搜索包含pattern的行。

  1. 顯示匹配行的行號
grep -n 'pattern' file.txt

加上-n選項,輸出結果中會顯示匹配行在文件中的行號。

  1. 搜索完整單詞
grep -w 'the' text.txt

使用-w選項,只會匹配完整的單詞the,而不會匹配像therethese等包含the的單詞。

  1. 統計匹配行數
grep -c 'pattern' file.txt

-c選項會返回文件中匹配pattern的行數。

  1. 使用正則表達式
grep '^[A-Z].*' file.txt

這個命令使用正則表達式,會匹配所有以大寫字母開頭的行。

  1. 反向匹配
grep -v 'pattern' file.txt

-v選項會輸出所有不包含pattern的行。

  1. 顯示匹配行及其上下文
grep -C 3 'pattern' file.txt

使用-C 3選項,會輸出匹配行以及該行前后各3行的內容。

與其他命令結合使用

grep常常和其他Linux命令一起使用,以實現更強大的功能:

  • 管道|grep
ls -l | grep 'Jul'

這個命令會列出當前目錄下的文件和文件夾,并篩選出文件名中包含Jul的項目。

  • 查找文件并搜索內容
find /path -type f -name "*.txt" | xargs grep 'pattern'

該命令先使用find命令查找指定目錄下的所有.txt文件,然后使用xargs將這些文件名傳遞給grep進行內容搜索。

掌握了這些用法,你就能在Linux系統中高效地使用grep命令進行文本搜索了。

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

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

相關文章

Java八股文——MySQL「架構篇」

MySQL主從復制了解嗎 面試官您好,我了解MySQL的主從復制。它是構建高可用、高可擴展數據庫架構的核心基石。 1. 主從復制的核心原理與流程 整個主從復制的過程,就是一場圍繞 binlog(二進制日志) 的“接力賽”。這個過程主要可以…

ubuntu下python版本升級導致pyqt不能正常運行解決

最終解決方案 ubuntu下多python版本pyqt兼容性問題解決 python3.9 -m pip install --upgrade --force-reinstall --prefer-binary pyqt5)嘗試解決方案一(失敗) 系統默認python版本可以,其他版本不行 sudo apt install pyqt5-dev-tools嘗試解決方案二(失敗) 一直…

AIGC工具平臺-VideoRetalking音頻對口型數字人

唇形合成技術正逐漸成為AIGC內容生產領域的重要工具,能夠實現音視頻數據的高度融合。基于VideoRetalking模塊的可視化界面降低了技術門檻,使非技術背景的用戶也能便捷體驗唇形驅動數字人合成的流程。 本文重點解析該模塊的使用方式及開發流程&#xff0…

前端項目如何部署為https

如何為項目部署設置HTTPS 設置HTTPS是保護網站數據傳輸安全的重要步驟。以下是設置HTTPS的主要方法: 1. 獲取SSL/TLS證書 免費證書選項 Let’s Encrypt:最流行的免費證書頒發機構Cloudflare:提供免費SSL和CDN服務ZeroSSL:另一…

nginx 配置 系統升級頁面

默認80端口配置如下: server {listen 80; # 指定端口號server_name 192.168.2.96; # 替換為實際域名或IP# 全局重定向到升級頁面(排除自身防循環)if ($request_uri !~* "/upgrade.html") {return 307 /upgrade.html; # 臨時重定…

計算機基礎(一)——設計模式

一、設計模式 設計模式(Design Patterns)是軟件開發中反復出現問題的解決方案的通用描述。 它是經過總結、提煉的高效代碼結構和設計方案,幫助開發者寫出更靈活、可維護和可擴展的代碼。 優點注意點規范代碼結構,提高開發效率設…

Mac電腦 磁盤檢測和監控工具 DriveDx

DriveDx Mac 一款不監視驅動器的內置S.M.A.R.T.狀態的先進驅動器運行狀況診斷和監測工具。 還分析了所有驅動器健康密切相關的指標, SSD或硬盤驅動器故障(像SSD磨損 /耐久性,壞扇區重新分配,離線壞道,未定扇形區&…

頻繁操作Json嵌套數據PostgreSQL配合JSON操作工具類+sql

文章目錄 1.工具類2.依賴3.sql 本文檔只是為了留檔方便以后工作運維,或者給同事分享文檔內容比較簡陋命令也不是特別全,不適合小白觀看,如有不懂可以私信,上班期間都是在得 背景:因為頻繁操作json嵌套數據 PostgreSQL得…

京東云 centos vim有操作混亂的問題

centos云服務器 安裝micro編輯器可以解決 yum install micro

限流系列之二:TDMQ CKafka 版限流方案詳解及最佳實踐

導語 在當今大數據和實時通信的時代,消息隊列在分布式系統中扮演著至關重要的角色。CKafka 作為一種高性能、高可靠的消息中間件,被廣泛應用于各種業務場景中。然而,隨著業務的增長和數據流量的增加,CKafka 在生產者和消費者以極…

消息隊列的基本概念

文章目錄 為什么需要消息隊列?🤔🎯 核心價值📋 使用場景 🏗? 架構層面的基本概念整體架構圖📦 核心組件詳解1. Broker(消息代理)2. Topic(主題)3. Partition…

Shell腳本中和||語法解析

https://www.cnblogs.com/liuyuelinfighting/p/16377705.html 在 Shell 腳本中,&& 和 || 是邏輯操作符,用于根據前一個命令的退出狀態(成功或失敗)決定是否執行后續命令。這種語法稱為 命令鏈(Command Chainin…

MySQL中的常見運算符

精選專欄鏈接 🔗 MySQL技術筆記專欄Redis技術筆記專欄大模型搭建專欄Python學習筆記專欄深度學習算法專欄 歡迎訂閱,點贊+關注,每日精進1%,共攀技術高峰 更多內容持續更新中!希望能給大家帶來幫助~ &…

高級IO技術詳解:阻塞/非阻塞IO、多路復用與內存映射

高級IO技術詳解:阻塞/非阻塞IO、多路復用與內存映射 關鍵詞:阻塞IO 非阻塞IO select/poll/epoll mmap 一、阻塞IO vs 非阻塞IO 類型行為特點設置方式阻塞IO- 讀空管道阻塞- 寫滿管道阻塞默認模式非阻塞IO- 讀空文件返回 -1,errnoEAGAIN- 寫滿…

【無標題】拓撲對偶框架的嚴格性補完與哲學突破

拓撲對偶框架的嚴格性補完與哲學突破: 一、數學嚴格性補完:同調類守恒的解決方案 1.1 負系數問題的幾何化修正 **問題本質**:當 $a_i$ 含負數時,曲率分配 $\kappa\frac{2\pi a_i}{A_{\text{max}}}$ 導致偽黎曼流形 **解決方案…

從0開始學習R語言--Day25--A/B測試 vs 多臂老虎機

通常在比較兩個不同的方案對數據的影響時,我們會各拿50%的數據去進行對照試驗,這樣觀測到的結果會最大程度地保留統計學上的特點。但實際上,并不是所有對比不同方案都要這樣做,一來,我們需要等到兩組實驗都完全結束后&…

功耗高?加密弱?愛普特APT32F1023H8S6單片機 2μA待機+AES硬件加密破局

愛普特APT32F1023H8S6單片機深度解析 1. 產品定位 APT32F1023H8S6 是愛普特半導體(APT)推出的 32位高性能單片機,基于 ARM Cortex-M0內核,主打 高集成度、低功耗、高性價比,面向消費電子、工業控制和物聯網領域。 2. …

【MFC】繪制自定義控件-顯示圖片(支持放大操作)

目錄 一、CDC類(二級緩存)二、計算視口三、放大操作代碼中初始化操作(方便以后cv) 一、CDC類(二級緩存) CDC類是設備上下文的核心類,它的作用是抽象化對圖形輸出設備(像屏幕、打印機…

在Proteus新工程中放置基本元器件

視頻教程: [最詳細]Proteus新建第一個工程與快捷鍵設置 操作步驟 1選擇這個黃色的三角,然后點擊旁邊的P,開始找元件。 2點開P后,呈現如下圖界面,我們在Keyword欄中,輸入stm32,然后他會自動出現對應的元件&…

PRUD幣推動健康數據資產化,開啟Web3隱私金融新時代

在全球健康科技與數據主權浪潮下,PRUD幣(Prudential Utility & Data Token)正成為Web3健康金融領域中的重要通證。項目通過鏈上身份綁定、健康行為證明、隱私計算與NFT機制,為用戶打造了“健康數據資產化”的創新路徑&#xf…