Linux中grep命令的用法

2021-06-18 08:16:33 字數 3338 閱讀 1599

1.作用

linux

系統中grep

命令是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹配的行列印出來。

grep

全稱是global regular expression print

,表示全域性正規表示式版本,它的使用許可權是所有使用者。 2.

格式 grep[options] 3.

主要引數

[options]

主要引數: -

c:只輸出匹配行的計數。 -

i:不區分大小寫

(只適用於單字元)。

-h:查詢多檔案時不顯示檔名。 -

l:查詢多檔案時只輸出包含匹配字元的檔名。 -

n:顯示匹配行及行號。 -

s:不顯示不存在或無匹配文字的錯誤資訊。 -

v:顯示不包含匹配文字的所有行。

pattern

正規表示式主要引數: \

:忽略正規表示式中特殊字元的原有含義。 ^

:匹配正規表示式的開始行。

$: 匹配正規表示式的結束行。

\<

:從匹配正規表示式的行開始。

\>

:到匹配正規表示式的行結束。

[ ]:單個字元,如

[a]即

a符合要求。

[ - ]

:範圍,如

[a-z],即a

、b、c

一直到z

都符合要求。

。:所有的單個字元。 *

:有字元,長度可以為0。

4.grep

命令使用簡單例項

$ grep 『test』d*

顯示所有以

d開頭的檔案中包含

test

的行。

$ grep 『test』aa bb cc

顯示在aa,

bb,cc檔案中匹配

test

的行。

$ grep『[a-z]\』 aa

顯示所有包含每個字串至少有

5個連續小寫字元的字串的行。

$ grep『w\(es\)t.*\1′ aa 如果

west

被匹配,則

es就被儲存到記憶體中,並標記為

1,然後搜尋任意個字元

(.*)

,這些字元後面緊跟著另外乙個

es(\1)

,找到就顯示該行。如果用

egrep

或grep -e

,就不用

」\」號進行轉義,直接寫成

』w(es)t.*\1′

就可以了。

5.grep

命令使用複雜例項

假設您正在

』/usr/src/linux/doc』

目錄下搜尋帶字串

』magic』

的檔案:

$ grep magic/usr/src/linux/doc/*

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 『\匹配

』manic』

和』man』

,但不是

』batman』

,grep 『\』

只匹配』man』

,而不是

』batman』

或』manic』

等其他的字串。

『^』:指匹配的字串在行首,

『$』:指匹配的字串在行尾,

示例:[alm@21sq-bbkz01 ~]$ grep "log" mv.txt

~/svnedge/svnbak/log/20130418161653.svnbak.log

~/svnedge/svnbak/svnsync133.log

[alm@21sq-bbkz01 ~]$ grep "log" mv.txt |awk -f '.' ''

loglog

[alm@21sq-bbkz01 ~]$ grep "log" mv.txt |awk -f '.' '' |uniq 

log

Linux中grep命令的用法

1.作用 linux系統中grep命令是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹 配的行列印出來。grep全稱是global regular expression print,表示全域性正規表示式版本,它的使用許可權是所有使用者。2.格式 grep options 3.主要引數 o...

linux中grep命令的用法

作為linux中最為常用的三大文字 awk,sed,grep 處理工具之一,掌握好其用法是很有必要的。首先談一下grep命令的常用格式為 grep 選項 模式 檔案 grep家族總共有三個 grep,egrep,fgrep。常用選項 e 開啟擴充套件 extend 的正規表示式。i 忽略大小寫 ig...

Linux中grep命令的用法

作為linux中最為常用的三大文字 awk,sed,grep 處理工具之一,掌握好其用法是很有必要的。首先談一下grep命令的常用格式為 grep 選項 模式 檔案 grep家族總共有三個 grep,egrep,fgrep。常用選項 e 開啟擴充套件 extend 的正規表示式。i 忽略大小寫 ig...