linux正規表示式

2021-10-04 23:12:26 字數 3515 閱讀 4530

. 乙個字元

… 兩個字元

.* 至少乙個

^ 開頭

$ 結束

[abc] 包含a或b或c的都匹配 ,匹配單個字元

[^abc] 只要出現了abc這三個字母以外的字元就都匹配,排除

1 以a開頭或以b開頭或以c開頭

[abc] 不以a開頭或不以b開頭或不以c開頭

a+ 匹配至少乙個或多個a

a* 匹配0或多個a

大寫 [[:upper:]]  [a-z]

小寫 [[:lower:]] [a-z]

字母 [[:alpha:]] [a-z]

字母數字 [[:alnum:]]

空格或者製表符 [[:blank:]]

純數字 [[:digit:]] [0-9]

標點符號 [[:punct:]]

正規表示式,又稱正規表示法、常規表示法(英語:regular expression,在**中常簡寫為regex、regexp或re),電腦科學的乙個概念。正規表示式使用單個字串來描述、匹配一系列符合某個句法規則的字串。

在很多文字編輯器裡,正規表示式通常被用來檢索、替換那些符合某個模式的文字。

許多程式語言都支援利用正規表示式進行字串操作。例如,在perl中就內建了乙個功能強大的正規表示式引擎。正規表示式這個概念最初是由unix中的工具軟體(例如sed和grep)普及開的。

正規表示式通常縮寫成「regex」,單數有regexp、regex,複數有regexps、regexes、regexen。

grep 在檔案裡查詢某個關鍵字

顯示查出的行在原檔案的行號加n引數 grep -n root /etc/passwd

反向查詢加v引數 grep -v bin /etc/passwd

ps -ef | grep sshd | grep -v grep

大小寫不敏感加i引數 grep -ni root grep.txt

擴充套件grep

統計root在/etc/passwd裡出現了幾次

grep -o root /etc/passwd |wc -l

111222

333444

555666

aaabbb

333ccc

ddd555

333555

vmnet8 link encap:ethernet hwaddr 00:50:56:c0:00:08

inet addr:192.168.56.1 bcast:192.168.56.255 mask:255.255.255.0

查詢出有rot或者是rat的行 grep -n r[oa]t grep.txt --注意的是,括號內不論幾個字元,都是選乙個

查詢乙個非r字元加oot連在一起的行 grep 『[^r]oot』 grep.txt

查詢非小寫字母連著乙個oo的行 grep 『[^a-z]oo』 grep.txt

–記住: 裡的^為取反 ,外面的為以它開頭

grep [^a-z] grep.txt

查詢非全部為小寫字母的字串行

查詢至少包含乙個非小寫字母的字元行

root

boot

root

boot

root

root

rotboot

rot111

222,123

.456

haha

hello

a1234

a123

a12a1

root

root

rotboot

root

boot

root

rotboot

查詢不以大寫字母開頭 grep 『[[:upper:]]』 grep.txt

grep 『[a-z]』 grep.txt

grep -v 『4

』 grep.txt

查詢有數字的行 grep 『[0-9]』 grep.txt

或者 grep [[:digit:]] grep.txt

查詢乙個數字和乙個字母連起來的行

grep -e '[0-9][a-z]|[a-z][0-9]' grep.txt
查詢不以r開頭的 grep -v ^r grep.txt

grep [r] grep.txt

查詢以數字開頭的 grep 5

grep.txt

grep 6

grep.txt

查詢以大寫字母開頭的 grep 7

grep.txt 或者 grep 8

grep.txt

查詢以小寫字母開頭的 grep 9

grep.txt 或者 grep 10

grep.txt

查詢以點結束的 grep 「.」$ grep.txt --注意要引起來,而且要轉義

grep 「*」$ grep.txt

去掉空格行 cat grep.txt |grep -v ^$ --以^$表示空格行

查詢完全匹配abc的行 grep ^abc$ grep.txt

查詢到a後有三個數字的行 egrep a[0-9]

root

root

rotboot

rot111

222,123

.456

haha

hello

a1234

a123

a12a1

aa1234

a123

a12a1

aa1234

a123

a12a1

a1234

a123

a12a1

. 點號代表乙個任意字元

ggle

gogle

google

gooogle

gagle

gaagle

gaaagle

abcgef

abcdef

goagle

aagoog

wrqsg

grep g. grep.txt --g後邊有乙個任意字元

grep g* grep.txt --結果比較怪

grep 「g*」 grep.txt --結果比較怪

grep g.g grep.txt --g和g之間有乙個任意字元

grep gg grep.txt --包含1個或多個g的行

grep go.g grep.txt

grep go.g grep.txt

grep gog grep.txt

grep go…g grep.txt

grep go..g grep.txt

grep g.*g grep.txt

abc ↩︎

br ↩︎

a-z ↩︎

a-z ↩︎

0-9 ↩︎

[:digit:] ↩︎

a-z ↩︎

[:upper:] ↩︎

a-z ↩︎

[:lower:] ↩︎

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...

正規表示式 Linux

主要內容 1 正規表示式2 基礎3 擴充套件4 通配5 grep命令 正規表示式基礎 1 元字元 metacharacters 是用來闡釋字元表示式意義的字元,簡言之,元字元就是描述字元的字元,它用於對字元表示式的內容 轉換及各種操作資訊進行描述。正規表示式是由一串字元和元字元構成的字串,簡稱re ...

Linux正規表示式

正規表示式是一種符號表示法,用於識別文字模式。linux處理正規表示式的主要程式是grep。grep搜尋與正規表示式匹配的行,並將結果輸送至標準輸出。1.grep匹配模式 grep按下述方式接受選項和引數 其中,regex表示正規表示式 1 grep options regex files 其中op...