首頁 運維 linux運維 linux中如何使用grep指令? (詳解)

linux中如何使用grep指令? (詳解)

Mar 06, 2019 pm 04:12 PM
linux

Linux系統中grep指令是一種強大的文本搜尋工具,它能使用正規表示式搜尋文本,並把符合的行列印出來,其使用語法是「grep [options] pattern [files] 」。

linux中如何使用grep指令? (詳解)

本文操作環境:linux5.9.8系統、Dell G3電腦。

Linux grep指令

Linux grep指令用來尋找檔案裡符合條件的字串;也可以用來尋找內容包含指定的範本樣式的檔案。它能使用正規表示式搜索,用於在文件中搜尋指定的字串模式,列出包含匹配模式子符串的文件名,並輸出包含該字串的文本行。

grep的工作方式是這樣的:它在一個或多個檔案中搜尋字串模板。如果模板包括空格,則必須被引用,模板後的所有字串被視為檔案名稱。搜尋的結果送到標準輸出,不影響原文件內容。

基本語法:

grep [options] pattern [files]
登入後複製

[options]的主要參數:

-a 或--text : 不要忽略二進制的數據。

-A<顯示行數> 或 --after-context=<顯示行數> : 除了顯示符合範本樣式的那一列之外,並顯示該行之後的內容。

-b 或 --byte-offset : 在顯示符合樣式的那一行之前,標示出該行第一個字元的編號。

-B<顯示行數> 或 --before-context=<顯示行數> : 除了顯示符合樣式的那一行之外,並顯示該行之前的內容。

-c 或 --count : 計算符合樣式的列數。

-C<顯示行數> 或--context=<顯示行數>或-<顯示行數> : 除了顯示符合樣式的那一行之外,並顯示該行之前後的內容。

-d <動作> 或--directories=<動作> : 當指定要尋找的是目錄而非檔案時,必須使用此參數,否則grep指令將回報資訊並停止動作。

-e<範本樣式> 或 --regexp=<範本樣式> : 指定字串做為尋找檔案內容的樣式。

-E 或 --extended-regexp : 將樣式為延伸的普通表示法來使用。

-f<規則文件> 或--file=<規則文件> : 指定規則文件,其內容含有一個或多個規則樣式,讓grep查找符合規則條件的文件內容,格式為每行一個規則樣式。

-F 或 --fixed-regexp : 將樣式視為固定字串的清單。

-G 或 --basic-regexp : 將樣式視為普通的表示法來使用。

-h 或 --no-filename : 在顯示符合樣式的那一行之前,不標示該行所屬的檔案名稱。

-H 或 --with-filename : 在顯示符合樣式的那一行之前,表示該行所屬的檔案名稱。

-i 或 --ignore-case : 忽略字元大小寫的差異。

-l 或 --file-with-matches : 列出檔案內容符合指定的樣式的檔案名稱。

-L 或 --files-without-match : 列出檔案內容不符合指定的樣式的檔案名稱。

-n 或 --line-number : 在顯示符合樣式的那一行之前,標示出該行的列數編號。

-o 或 --only-matching : 只顯示符合PATTERN 部分。

-q 或 --quiet或--silent : 不顯示任何資訊。

-r 或 --recursive : 此參數的效果和指定"-d recurse"參數相同。

-s 或 --no-messages : 不顯示錯誤訊息。

-v 或 --revert-match : 顯示所有不包含符合文字的行。

-V 或 --version : 顯示版本資訊。

-w 或 --word-regexp : 只顯示全字符合的欄位。

-x --line-regexp : 只顯示全列符合的列。

-y : 此參數的效果和指定"-i"參數相同。

-?:同時顯示匹配行上下的?行,如:grep -2 pattern filename同時顯示符合行的上下2行。

pattern正規表示式主要參數:

\:忽略正規表示式中特殊字元的原始意義。

^:符合正規表示式的開始行。

$:符合正規表示式的結束行。

\<:從符合正規表示式的行開始。

\>:到符合正規表示式的行結束。

[]:單一字符,如[A]即A符合要求。

[ - ]:範圍,如[A-Z],即A、B、C一直到Z都符合要求。

.:所有的單一字元。

*:有字符,長度可以為0。

程式碼範例:

範例1:在目前目錄中,找出前綴有「test」字樣的文件中包含「test」字串的文件,並列印出該字串的行,此時,可以使用以下命令:

grep test test*
登入後複製

輸出:

testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行  
testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行  
testfile_2:Linux test #列出testfile_2 文件中包含test字符的行
登入後複製

範例2:反向查找,透過"-v"參數可以列印出不符合條件行的內容。在尋找檔案名稱中包含test 的檔案中不包含test 的行 

grep -v test *test*
登入後複製

輸出:

testfile1:helLinux!  
testfile1:Linis a free Unix-type operating system.  
testfile1:Lin  
testfile_1:HELLO LINUX!  
testfile_1:LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM.  
testfile_1:THIS IS A LINUX TESTFILE!  
testfile_2:HELLO LINUX!  
testfile_2:Linux is a free unix-type opterating system.
登入後複製

相关linux视频教程推荐:《linux语言教程

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

以上是linux中如何使用grep指令? (詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vscode需要什麼電腦配置 vscode需要什麼電腦配置 Apr 15, 2025 pm 09:48 PM

VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

vscode終端使用教程 vscode終端使用教程 Apr 15, 2025 pm 10:09 PM

vscode 內置終端是一個開發工具,允許在編輯器內運行命令和腳本,以簡化開發流程。如何使用 vscode 終端:通過快捷鍵 (Ctrl/Cmd ) 打開終端。輸入命令或運行腳本。使用熱鍵 (如 Ctrl L 清除終端)。更改工作目錄 (如 cd 命令)。高級功能包括調試模式、代碼片段自動補全和交互式命令歷史。

notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

Linux的主要目的是什麼? Linux的主要目的是什麼? Apr 16, 2025 am 12:19 AM

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

vscode終端命令不能用 vscode終端命令不能用 Apr 15, 2025 pm 10:03 PM

VS Code 終端命令無法使用的原因及解決辦法:未安裝必要的工具(Windows:WSL;macOS:Xcode 命令行工具)路徑配置錯誤(添加可執行文件到 PATH 環境變量中)權限問題(以管理員身份運行 VS Code)防火牆或代理限制(檢查設置,解除限制)終端設置不正確(啟用使用外部終端)VS Code 安裝損壞(重新安裝或更新)終端配置不兼容(嘗試不同的終端類型或命令)特定環境變量缺失(設置必要的環境變量)

See all articles