偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

在 Linux 中怎樣進(jìn)行 grep 搜索呢?通過例子來學(xué)習(xí)幾個常用的方法

系統(tǒng) Linux
grep 是一個功能強(qiáng)大的 unix 命令,可以在文件內(nèi)容中搜索各種參數(shù)。本文會舉例說明一些最常見的 grep 命令,介紹其常見選項(xiàng)及用法。

grep 是一個功能強(qiáng)大的 unix 命令,可以在文件內(nèi)容中搜索各種參數(shù)。在各種故障排除或調(diào)試中特別有用。

grep 有很多選項(xiàng)和使用場景,你應(yīng)該不會全部都用得到,不過,其中有幾個 grep 命令還是經(jīng)常會用到的。

本文會舉例說明一些最常見的 grep 命令,介紹其常見選項(xiàng)及用法。

如下表列出了一些常見的選項(xiàng)及其說明:

選項(xiàng)

例子

說明

i

grep -i pattern file

不區(qū)分大小寫的搜索

A

grep -A n pattern file

顯示搜索的后幾行

B

grep -B n pattern file

顯示搜索的前幾行

C

grep -C n pattern file

顯示搜索的前幾行和后幾行

v

grep -v pattern file

顯示不匹配的行

c

grep -c pattern file

計(jì)算匹配的行數(shù)

l

grep -l pattern file

只顯示搜索到的文件名稱

w

grep -w pattern file

全字匹配

e

grep -e regex file

匹配正則表達(dá)式

a

grep -a pattern file

在二進(jìn)制文件中搜索

r

grep -r pattern dir

遞歸搜索目錄

grep 命令實(shí)例

你可能已經(jīng)知道,要搜索文件中特定的文本或表達(dá)式,可以這樣使用grep:

grep search_pattern filename

現(xiàn)在我們看看幾個常見的例子

不區(qū)分大小寫的搜索

默認(rèn)情況下,grep 是區(qū)分大小寫的。你可以使用 -i 選項(xiàng)來讓其不區(qū)分大小寫:

grep -i search_pattern filename

顯示匹配文本的前后行

默認(rèn)情況下,你只會看到匹配文本的當(dāng)前行。但是,當(dāng)你在排除故障的時候,看一下匹配行的前一行,或者后一行,也會有幫助。

你可以使用 -A 來顯示匹配行之后的行。記住,A代表之后(After)。

下面的命令將顯示匹配的行以及匹配后的5行:

grep -A 5 search_pattern filename

類似地,你可以使用 -B 選項(xiàng)在匹配的行之前顯示行。記住,B代表之前(Before)。

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

grep -B 5 search_pattern filename

我最喜歡的是選項(xiàng) -C,因?yàn)樗@示了匹配行之前和之后的行。C 代表圓(Circle)。

下面的命令將顯示匹配行之前的5行、匹配行和匹配行之后的5行:

grep -C 5 search_pattern filename

顯示不匹配的行

你可以使用 grep 顯示與給定表達(dá)式不匹配的所有行。此“反向匹配”使用 -v 選項(xiàng):

grep -v search_pattern filename

你可以將 -i-v 一起使用。

計(jì)算匹配行的數(shù)量

使用 -c 選項(xiàng),可以不顯示匹配的行,只顯示與給定表達(dá)式匹配的行的數(shù)量。注意,這里的 c 是小寫的 c。

grep -c search_pattern filename

你可以將 -c -v 選項(xiàng)一起用來查看與給定表達(dá)式不匹配的行數(shù)。當(dāng)然,也可以結(jié)合使用不區(qū)分大小寫的 -i 選項(xiàng)。

顯示匹配行的行號

要顯示匹配行的行號,可以使用 -n 選項(xiàng)。

grep -n search_pattern filename

顯示行號也可以使用 -v 來進(jìn)行反向搜索。

在多個文件中搜索

可以給出多個文件進(jìn)行 grep 搜索:

grep search_pattern file1 file2

這樣搜索是可以的。但平時更實(shí)用也更常用的,是搜索特定類型的文件,比如只搜索shell腳本(以 .sh 結(jié)尾的文件),可以這樣使用 grep 命令:

grep search_pattern *.sh

遞歸搜索目錄中的所有文件

你可以使用 -r 選項(xiàng)執(zhí)行遞歸搜索,它會在當(dāng)前目錄以及子目錄的所有文件中搜索給定的表達(dá)式:

grep -r search_pattern directory_path

僅顯示文件名

默認(rèn)情況下,grep 顯示匹配的行。如果你已經(jīng)在多個文件上運(yùn)行了搜索,并且只想查看哪些文件包含字符串,那么可以使用 -l 選項(xiàng)。

grep -l search_pattern files_pattern

比如你要在所有.md文件中搜索單詞 "handbook",可以這樣:

grep -l handbook *.md

全字符匹配(搜索完整單詞)

默認(rèn)情況下,grep 將顯示包含給定字符串的任何行。你可能并不總是想要這樣,比如你正在搜索“done”一詞,它的結(jié)果還會顯示包含“doner”或“abandoned”的行。

要使用全字符匹配 ,可以使用 -w 選項(xiàng):

grep -w search_string file

這樣,搜索單詞 "done" 的時候,就只顯示包含 "done" 的行,而不會顯示包含 "doner" 或 "abandoned" 的行。

按正則表達(dá)式搜索

你可以使用正則表達(dá)式來搜索,選項(xiàng) -e 可以允許使用正則表達(dá)式,另外一個選項(xiàng) -E 允許使用擴(kuò)展的正則表達(dá)式。

grep -e regex_pattern file

使用 "或運(yùn)算符" |

你可以在同一個 grep 搜索中使用多個表達(dá)式,如果要搜索包含“表達(dá)式1”,或者“表達(dá)式2”的行,可以使用“或(OR)" 運(yùn)算符 |,但是需要添加反斜線進(jìn)行轉(zhuǎn)義:

grep 'pattern1\|pattern' filename

AND運(yùn)算符沒有特定選項(xiàng)。為此,你可以多次使用 grep 和管道重定向。

搜索二進(jìn)制文件

默認(rèn)情況下,grep 會忽略二進(jìn)制文件。你可以使用 -a 選項(xiàng)使其在二進(jìn)制文件中搜索,就像它是文本文件一樣:

grep -a pattern binary_file
責(zé)任編輯:龐桂玉 來源: TIAP
相關(guān)推薦

2021-11-29 06:44:28

StreamJava8代碼

2013-11-13 13:55:16

Linux命令grep

2011-09-02 10:45:29

網(wǎng)速測試網(wǎng)速測試方法

2015-07-14 10:13:29

2011-04-07 09:33:22

2020-07-13 08:18:58

跨庫查詢MySQL數(shù)據(jù)庫

2022-11-09 11:17:24

tee命令

2010-10-13 09:45:50

Linux監(jiān)控腳本

2018-04-26 09:03:48

ApacheWeb服務(wù)器

2023-04-20 13:59:01

Pythonwhile循環(huán)的

2022-11-09 19:02:10

Linux

2017-03-17 14:35:38

2013-12-13 15:54:32

Lua腳本語言

2021-07-15 10:01:31

Vector搜索向量

2021-10-11 08:58:33

Vector類搜索方法

2021-08-02 08:20:23

AIOps網(wǎng)絡(luò)管理人工智能

2019-09-24 19:00:41

Linuxrm命令unlink命令

2017-06-01 15:30:32

LinuxVim文件加密

2013-12-12 17:30:03

Lua例子

2023-10-31 08:23:54

網(wǎng)絡(luò)命令Linux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號