shell程式設計學習筆記之正規表示式初識

2022-08-23 14:09:12 字數 3347 閱讀 4173

1.

對單字元的查詢:

1.1單字元: 『x』

$ grep 『q』 passwd //查詢單個字元

1.2

範圍字元 [^]

1.3

任意字元 .

$ grep '[1-9]' passwd //

查詢某個範圍的單個字元(範圍)

$ grep '[a-za-z]' passwd //

查詢某個範圍的單個字元(範圍)

$ grep '[a-za-z:/,_-()]' passwd ------------>$ grep '[^0-9]' passwd //

取反

2.正規表示式的符號:

邊界字元:

2.1頭字元: ^ :^root

以root

開始的2.2

圍字元:$ : $flase :

以flase

結束的2.3

空行 : ^$ :

頭尾相碰表示空行

元字元:

\w :

匹配任意字類字元

匹配任意非字類字元

代表字元的分割

3.正則表達字元組合

grep 『[0-9][0-9]』 passwd

3.1重複

* : 零次或多次 匹配前面的字元或表示式

+ :一次或多次 ……

?:零次或一次……

1 qi@zhuandshao:~$ cat

test23

sesesese45

6se78

9seeeee

1011

1213 s+s+

1415

1650000000

1 qi@zhuandshao:~$ grep

'se*

'test23

sesesese45

se67seeeee

89 s+s+

qi@zhuandshao:~$ grep

'se+

'test

qi@zhuandshao:~$ grep's+

'test

s+s+qi@zhuandshao:~$ echo se+se+ >>test

qi@zhuandshao:~$ grep

'se+

'test

se+se+qi@zhuandshao:~$ grep

'se\+

' test //

加上反斜槓,進行轉義

sesesese

seseeeee

se+se+qi@zhuandshao:~$ grep

'se?

'test

qi@zhuandshao:~$ grep

'se\?

'test

sesesese

seseeeee

s+s+se+se+qi@zhuandshao:~$

qi@zhuandshao:~$ grep

'\(se\)*

' test //

零次匹配會出現空行或者完全不匹配

sesesese

seseeeee

s+s+

50000000

se+se+qi@zhuandshao:~$ grep

'\(se\)\+

' test //

反斜槓 使用括號對字串重複

sesesese

seseeeee

se+se+

3.2重複特定次數

qi@zhuandshao:~$

grep '[0-9]' passwd

qi@zhuandshao:~$

grep '[0-9]\' passwd //

重複兩到三次

3.3邏輯符號表示

貪婪匹配:盡可能匹配最大長度

任意字串:

邏輯或 |

qi@zhuandshao:~$ grep

'bin/\(false\|true\)

'passwd

systemd-timesync:x:100:102:systemd time synchronization,,,:/run/systemd:/bin/false

systemd-network:x:101:103:systemd network management,,,:/run/systemd/netif:/bin/false

systemd-resolve:x:102:104:systemd resolver,,,:/run/systemd/resolve:/bin/false

systemd-bus-proxy:x:103:105:systemd bus proxy,,,:/run/systemd:/bin/false

3.4.

字元組合小結:

4.正規表示式案例

4.1.

匹配4-10

位的qq

號碼grep '^[0-9]\$' qq.txt //

首尾^$

4.2匹配15

或18位身份證號碼

(支援x)$

grep '^[1-9]\([0-9]\\|[0-9]\\)[0-9xx]&' qq.txt

4.3匹配密碼 (數字、26

字母、下劃線)

$grep

『^\w\+$』 qq.txt

5.正規表示式總結

linux學習筆記之shell程式設計(指令碼)

bin bash 號表示注釋 shell指令碼從上往下依次執行 date grep root etc passwd 先加許可權 chmod x 1.sh或chmod 744 1.sh 輸入絕對路徑或相對路徑如.1.sh 表示當前目錄 bash 1.sh sh 1.sh source 1.sh 1.s...

shell程式設計學習筆記

c語言中文網 shell教程 學習這篇文章時,發現它在單引號和雙引號有什麼區別上寫的不夠準確,於是網上查詢資料 shell程式設計中單引號,雙引號,各種括號的區別 學習這篇部落格時,發現寫的還是不夠準確,繼續網上查詢資料 雙引號作用與單引號類似,區別在於它沒有那麼嚴格。單引號告訴shell忽略所有特...

shell指令碼學習筆記之grep 正規表示式

grep命令是linux中一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹配的行列印出來。grep全稱是global regular expression print,表示全域性正規表示式版本,它的使用許可權是所有使用者。grep的主要引數 c 只輸出匹配行的計數。i 不區分大小寫 只適用...