Linux基礎系列(一)grep文字搜尋工具

2021-09-21 11:50:50 字數 3072 閱讀 6878

mark: 本系列博文只是記錄作者在linux學習過程中的點點滴滴,新手可能參考,高手們就略過吧!!!

linux學習總結:grep文字搜尋工具

功能:根據使用者指定的文字模式(搜尋條件)對目標檔案進行逐行搜尋,並把匹配的行列印出來,它的全稱為「global regular expression print」,全域性正規表示式,它預設是開放給所有使用者。

語法格式:grep [option] pattern file

option:命令選項,具體包含:

-v: --revert-match 反向選取,顯示不包含匹配檔案的所有行;

-i: --ignore-case 忽略字元大小寫;

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

-e: --extended-regexp 支援使用正規表示式;

-a: --after-context 除了顯示符合範本樣式的列之外,並顯示該行之後的內容

-b: --before-context除了顯示符合範本樣式的列之外,並顯示該行之前的內容

-c: --context除了顯示符合範本樣式的列之外,並顯示該行之前後的內容

-n: --line-number 在顯示符合樣式的那一行之前同時標記出該行的列數編號;

例項

一、顯示檔案「/tmp/testin.sh」裡面不包含「linux」的所有行

命令:grep –v–n 「linux」 /tmp/testin.sh

例項

二、查詢檔案「/tmp/testin.sh」裡關鍵字「linux」不區分大小寫的所有行

命令:grep -v -n "linux" /tmp/testin.sh

例項

三、顯示包含大小寫「linux」關鍵字的所有行,並計算總數

命令:grep -v -n -c "linux" /tmp/testin.sh

正規表示式:是一類字元所書寫的模式,其中許多字元不表示其字面意義,而是表達控制或通配等功能。

正規表示式元字元,其中:

字元匹配:

「.」  : 匹配任意單個字元,如」grep.p」匹配grep後接乙個任意字元;

「」  : 匹配指定範圍內的任意個字元,如」[gg]rep」匹配grep 和grep;

「[^]」 : 匹配不在指定範圍內的任意個字元,如」[^a-z]grep」匹配不包含」a-z」的字母開頭,緊接著grep;

位置錨定:

「^」 : 行首定位符,」^grep」匹配所有以grep開頭的行;

「$」 : 行尾定位符,」grep$」匹配所有以 grep結尾的行;

「^$」: 空白行;

「\「\>」:錨定單詞的結束,如:」grep\>」匹配包含以」grep」結尾的單詞的行;

次數匹配:

「*」    : 匹配零個或多個字元,如」*grep」匹配所有乙個或者多個空格後接著grep的行;

「.*」   : 匹配任意字元;

「\?」   : 零次或者壹次,前面的字元可有可無,如」gr\?ep」,代表可以是grep,ep;

「\」 : 重複m次,如」grep\」,匹配包含至少2個」grep」的行;

「\」: 重複字元至少m次,如」grep\」匹配至少有2個grep的行;

「\」: 重複字元至少m次,至多n次,如」grep\」匹配2至3個grep的行;

posix字元:

[:alnum:] :文字數字字元;

[:alpha:] : 文字字元;

[:digit:] : 數字字元;

[:graph:] : 非空字元(非空格、控制字元);

[:lower:] : 小字字元;

[:print:] : 非空字元,包括空格;

[:space:] : 所有空白字元(新行、空格、製表符);

[:upper:] : 大寫字元;

[:punct:] : 標點符號;

例項

四、顯示檔案「/tmp/test.grep」中

單詞為「grep」、「grep」

命令:grep –n 「[gg]rep」 /tmp/test.grep

例項

五、顯示檔案「/tmp/test.grep」中以「grep」開頭的行

命令:cat /tmp/test.grep | grep ^grep

例項

六、顯示檔案「/tmp/test.grep」中以「grep」結尾的行

例項

七、顯示/tmp/test.grep中以至少乙個空白字元結尾的行;

命令:grep -n "[[:space:]]\$" /tmp/test.grep

待續!

linux基礎命令grep

目的 使用grep命令來查詢檔案中符合條件的字串 格式 grep 選項 查詢模式 檔名 舉例項看看 建立乙個檔案test1.txt,檔案的內容是 aaaaaaaaa abcabcabcabc cbacbacba match pattern nand erase 首先在查詢字串時,我們希望顯示如下內容...

linux命令終極系列之(grep)

一.grep命令常用引數 1 a num grep a 1 aa test.txt 說明 從test.txt中搜尋有aa樣式的行,並顯示該行的後1行 2 b num grep b 1 aa test.txt 說明 從test.txt中搜尋有aa樣式的行,並顯示該行的前1行 3 c num grep ...

Linux基礎 grep匹配命令

正則就是有一定規律的字串,不僅可以使用命令列工具grep,sed,awk egrep去引用正則,還可以把正則嵌入到 nginx,apache,甚至php,python中。特殊符號 grep,主要用來過濾出指定的行。指定的條件,用正規表示式。1 語法選項 grep civnabc word filen...