導航:首頁 > 程序命令 > linux常用命令grep

linux常用命令grep

發布時間:2024-11-03 12:53:55

linux下Grep命令的詳細使用方法

在linux中grep命令是非常有用的,它和管道(|)配合使用,非常強大,用於搜索文本文件.如果想要在幾個文本文件中查找一字元串,可以使用『grep』命令。『grep』在文本中搜索指定的字元串。
假設您正在『/usr/src/linux/Documentation』目錄下搜索帶字元串『magic』的文件:

$ grep magic /usr/src/linux/Documentation/*
sysrq.txt:* How do I enable the magic SysRQ key?
sysrq.txt:* How do I use the magic SysRQ key?

其中文件『sysrp.txt』包含該字元串,討論的是 SysRQ 的功能。

默認情況下,『grep』只搜索當前目錄。如果此目錄下有許多子目錄,『grep』會以如下形式列出:

grep: sound: Is a directory

這可能會使『grep』的輸出難於閱讀。這里有兩種解決的辦法:

明確要求搜索子目錄:grep -r
或忽略子目錄:grep -d skip
當然,如果預料到有許多輸出,您可以通過 管道 將其轉到『less』上閱讀:

$ grep magic /usr/src/linux/Documentation/* | less

這樣,您就可以更方便地閱讀。

有一點要注意,您必需提供一個文件過濾方式(搜索全部文件的話用 *)。如果您忘了,『grep』會一直等著,直到該程序被中斷。如果您遇到了這樣的情況,按 <CTRL c> ,然後再試。

下面是一些有意思的命令行參數:

grep -i pattern files :不區分大小寫地搜索。默認情況區分大小寫,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整個單詞,而不是字元串的一部分(如匹配『magic』,而不是『magical』),
grep -C number pattern files :匹配的上下文分別顯示[number]行,
grep pattern1 | pattern2 files :顯示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。
這里還有些用於搜索的特殊符號:

\< 和 \> 分別標注單詞的開始與結尾。
例如:
grep man * 會匹配 『Batman』、『manic』、『man』等,
grep '\<man' * 匹配『manic』和『man』,但不是『Batman』,
grep '\<man\>' 只匹配『man』,而不是『Batman』或『manic』等其他的字元串。
'^':指匹配的字元串在行首,
'$':指匹配的字元串在行尾,
如果您不習慣命令行參數,可以試試圖形界面的『grep』,如 reXgrep 。這個軟體提供 AND、OR、NOT 等語法,還有漂亮的按鈕 :-) 。如果您只是需要更清楚的輸出,不妨試試 fungrep 。

㈡ Linux 中 Grep 命令的常見示例,很全面

Grep 是一個強大的 UNIX 命令,可讓您在文件內容中搜索各種參數。當您進行故障排除或調試時,它特別有用。

grep 命令有大量的選項和用例。您可能永遠不需要或使用所有這些。但是,您最終會在大多數情況下使用少數幾個 grep 命令。

本文列出了最常見的 grep 命令和快速示例:

命令示例:

描述 :不區分大小寫的搜索

命令示例:

描述 :匹配後顯示 n 行

命令示例:

描述 :在匹配前顯示 n 行

命令示例:

描述 :在匹配前後顯示 n 行

命令示例:

描述 :顯示不匹配的行

命令示例:

描述 :計算匹配行數

命令示例:

描述 :僅顯示文件名

命令示例:

描述 :匹配確切的單詞

命令示例:

描述 :匹配正則表達式模式

命令示例:

描述 :搜索二進制文件

命令示例:

描述 :遞歸搜索目錄

您可能已經知道要在文件中搜索特定文本或模式,您必須像這樣使用 grep:

讓我們看看 grep 命令的幾個常見用例。

默認情況下,使用 grep 進行的搜索區分大小寫,-i您可以使用以下選項忽略大小寫匹配:

這樣,grep 將返回與 和 匹配的Holmes行holmes。

默認情況下,您只會看到匹配的行,但是,當您對某些問題進行故障排除時,在匹配行之前和/或之後查看幾行會有所幫助。

您可以使用-A來顯示匹配行之後的行。

下面的命令將顯示匹配的行以及匹配後的 5 行。

同樣,您可以使用該-B選項在匹配行之前顯示行。

下面的命令將在匹配行之前顯示 5 行以及匹配行。

我最喜歡的是該選項-C,因為它顯示了匹配行之前和之後的行。

下面的命令將顯示匹配行之前的 5 行、匹配行和 matchine 行之後的 5 行。

您可以使用 grep 顯示與給定模式不匹配的所有行。此「反轉匹配」與以下-v選項一起使用:

您可以組合-i和-v選項。

-c您可以使用選項獲取與模式匹配的行數,而不是顯示匹配的行。這是小寫的c。

您可以結合-cand-v選項來獲取與給定模式不匹配的行數。您當然可以使用不區分大小寫的選項-i。

要顯示匹配行的行號,您可以使用該-n選項。

您可以對反向搜索執行相同的操作。

您可以提供多個文件供 grep 搜索。

這可能有效,但更實際的示例是搜索特定類型的文件。例如,如果您只想在 shell 腳本中查找字元串(以 .sh 結尾的文件),您可以使用:

您可以使用 grep option執行遞歸搜索-r。它將在當前目錄及其子目錄中的所有文件中搜索給定的模式。

默認情況下,grep 顯示匹配的行。如果您對多個文件運行了搜索,並且只想查看哪些文件包含該字元串,則可以使用該-l選項。

假設您想查看哪些 Markdown 文件包含「手冊」一詞,您可以使用:

默認情況下,grep 將顯示包含給定字元串的所有行。你可能並不總是想要那個。如果您正在搜索單詞「done」,它還會顯示包含「doner」或「abandoned」字樣的行。

要使 grep 僅搜索完整的單詞,您可以使用以下選項-w:

這樣,如果您搜索單詞「done」,它只會顯示包含「done」的行,而不是「doner」或「abandoned」。

您可以使用正則表達式模式為您的搜索提供超級動力。有一個允許使用正則表達式模式的專用選項-e和-E一個允許使用擴展正則表達式模式的選項。

您可以在同一個 grep 搜索中搜索多個模式。如果要查看包含一種模式或另一種模式的行,可以使用 OR 運算符|。

您可以將多個模式與 OR 運算符一起使用。

AND 運算符沒有特定選項。為此,您可以多次使用 grep 和管道重定向。

Grep 默認忽略二進制文件。-a您可以使用該選項使其在二進制文件中搜索,就好像它是文本文件一樣。

㈢ linux環境grep命令排除當前行及下一行的命令該怎麼寫

grep是Linux環境下強大且常用的文件模式搜索工具,無論你需要查找特定的字元串還是樣式,它都能幫你輕松解決。

首先,安裝grep。如果你的系統中沒有預裝grep,可以通過包管理器輕松安裝。例如,在Debian或Ubuntu系統中使用`apt-get`,在RHEL、CentOS或Fedora系統中使用`yum`。

了解如何使用grep,關鍵在於實際案例的應用。以下是一些示例,展示如何利用grep解決實際問題。

1. 查找特定文件

假設你剛安裝了Ubuntu系統,計劃卸載python,卻不確定系統中安裝了哪個版本的Python及其模塊。你可以通過運行以下命令來查找相關信息:

首先使用`dpkg -l`列出系統上的.deb包,然後通過管道將結果傳給`grep -i python`,這將過濾出所有包含"python"的項,並返回結果。`-i`選項用於忽略大小寫,確保搜索結果的准確性。

2. 過濾文件內容

當你的Apache伺服器出現問題,需要從專業網站獲取幫助時,可以利用grep過濾文件內容。例如,要從`/etc/apache2/sites-available/default-ssl`文件中移除注釋行,你可以使用以下命令:

命令中的`-v`選項表示反轉輸出結果,即不輸出匹配的行,而是顯示所有不匹配的行。然而,這並不是最精確的過濾方法,因為包含`#`的行不全都是注釋行。對於更精確的過濾,需要了解正則表達式。

3. 查找特定格式的文件

grep對於過濾標准輸出非常有用。假設你有一個包含不同格式音樂文件的文件夾,想找出藝術家JayZ的所有mp3文件。使用`find`命令結合管道和`grep`,可以輕松完成這個任務:

首先,使用`find`命令列出所有`.mp3`後綴的文件,然後通過管道將結果傳遞給`grep -i`過濾出名字為「JayZ」的文件,最後再使用管道傳給`grep -vi`過濾掉含有「remix」的項。

4. 顯示匹配行的行號

使用`-A`和`-B`選項顯示匹配的行及其行號,分別控制在字元串前後顯示的行數。`man`頁面提供詳細解釋,記憶技巧是:`-A=after`、`-B=before`。

5. 精確匹配搜索

使用`-w`選項進行精確匹配搜索,確保搜索的內容包含完整單詞,而不是通配符。例如,輸入`"關鍵詞"`將列印出含有引號內匹配項的行。同時嘗試以下命令:

若搜索項中沒有特定的單獨單詞,此命令將不會返回任何結果。

6. 在Gzip壓縮文件中搜索

為解決在Gzip壓縮文件中搜索問題,可以使用`zgrep`命令。它與`zcat`類似,可以用於解壓gzip壓縮文件。`zgrep`的使用方式與`grep`相似,但有額外的選項用於控制輸出。

通過這些示例,你可以看到grep的強大功能,它在解決各種需求時都能發揮重要作用。無論是運行單行命令還是作為cron任務或shell腳本的一部分,grep都能幫助你實現所需功能。保持好奇心,探索`man`頁面的各個選項,為實現特定目標編寫grep表達式。

㈣ Linux下Grep命令的詳細使用方法

在linux中grep命令是非常有用的,它和管道(|)配合使用,非常強大,用於搜索文本文件.如果想要在幾個文本文件中查找一字元串,可以使用『grep』命令。『grep』在文本中搜索指定的字元串。
假設您正在『/usr/src/linux/Documentation』目錄下搜索帶字元串『magic』的文件:

$ grep magic /usr/src/linux/Documentation/*
sysrq.txt:* How do I enable the magic SysRQ key?
sysrq.txt:* How do I use the magic SysRQ key?

其中文件『sysrp.txt』包含該字元串,討論的是 SysRQ 的功能。

默認情況下,『grep』只搜索當前目錄。如果此目錄下有許多子目錄,『grep』會以如下形式列出:

grep: sound: Is a directory

這可能會使『grep』的輸出難於閱讀。這里有兩種解決的辦法:

明確要求搜索子目錄:grep -r
或忽略子目錄:grep -d skip
當然,如果預料到有許多輸出,您可以通過 管道 將其轉到『less』上閱讀:

$ grep magic /usr/src/linux/Documentation/* | less

這樣,您就可以更方便地閱讀。

有一點要注意,您必需提供一個文件過濾方式(搜索全部文件的話用 *)。如果您忘了,『grep』會一直等著,直到該程序被中斷。如果您遇到了這樣的情況,按 ,然後再試。

下面是一些有意思的命令行參數:

grep -i pattern files :不區分大小寫地搜索。默認情況區分大小寫,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整個單詞,而不是字元串的一部分(如匹配『magic』,而不是『magical』),
grep -C number pattern files :匹配的上下文分別顯示[number]行,
grep pattern1 | pattern2 files :顯示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。
這里還有些用於搜索的特殊符號:

\< 和 \> 分別標注單詞的開始與結尾。
例如:
grep man * 會匹配 『Batman』、『manic』、『man』等,
grep '\grep '\' 只匹配『man』,而不是『Batman』或『manic』等其他的字元串。
'^':指匹配的字元串在行首,
'$':指匹配的字元串在行尾,
如果您不習慣命令行參數,可以試試圖形界面的『grep』,如 reXgrep 。這個軟體提供 AND、OR、NOT 等語法,還有漂亮的按鈕 :-) 。如果您只是需要更清楚的輸出,不妨試試 fungrep 。

㈤ linux grep命令怎麼用

grep (global search regular expression(RE) and print out the line,全面搜索正則表達式並把行列印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行列印出來。
Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的擴展,支持更多的re元字元, fgrep就是fixed grep或fast grep,它們把所有的字母都看作單詞,也就是說,正則表達式中的元字元表示回其自身的字面意義,不再特殊。linux使用GNU版本的grep。它功能更強,可以通過-G、-E、-F命令行選項來使用egrep和fgrep的功能。
grep的詳細使用方法有很厚一本書,此處無法詳細說明,只能列出grep常用用法

[root@www ~]# grep [-acinv] [--color=auto] '搜尋字元串' filename
選項與參數:
-a :將 binary 文件以 text 文件的方式搜尋數據
-c :計算找到 '搜尋字元串' 的次數
-i :忽略大小寫的不同,所以大小寫視為相同
-n :順便輸出行號
-v :反向選擇,亦即顯示出沒有 '搜尋字元串' 內容的那一行!
--color=auto :可以將找到的關鍵詞部分加上顏色的顯示喔!

閱讀全文

與linux常用命令grep相關的資料

熱點內容
android網路mp3格式 瀏覽:319
程序員抱怨it氣氛 瀏覽:698
改apk伺服器地址 瀏覽:414
原理圖中的編譯 瀏覽:924
繽智怎麼給車機安裝app 瀏覽:728
伺服器的證件是什麼 瀏覽:538
linuxgraphics 瀏覽:137
ACPI編譯工具MaciASL 瀏覽:895
導線點加密技巧 瀏覽:103
閃迪加密軟體如何去除 瀏覽:560
格力壓縮機技術 瀏覽:7
app下單約妹子的什麼語音 瀏覽:834
華為軟體加密怎麼關閉 瀏覽:325
安卓手機q系統怎麼用 瀏覽:105
一個淡定的程序員 瀏覽:423
怎麼在dos窗口打開python 瀏覽:591
怎麼通過網頁取伺服器ip 瀏覽:789
android系統發展前景 瀏覽:852
了8解壓密碼 瀏覽:633
單片機的定時器資源是計數器 瀏覽:628