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:~$ cattest23
sesesese45
6se78
9seeeee
1011
1213 s+s+
1415
1650000000
1 qi@zhuandshao:~$ grep'se*
'test23
sesesese45
se67seeeee
89 s+s+
qi@zhuandshao:~$ grep3.2重複特定次數'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+
qi@zhuandshao:~$
grep '[0-9]' passwd
qi@zhuandshao:~$
grep '[0-9]\' passwd //
重複兩到三次
3.3邏輯符號表示
貪婪匹配:盡可能匹配最大長度
任意字串:
邏輯或 |
:
qi@zhuandshao:~$ grep3.4.'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
字元組合小結:
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 不區分大小寫 只適用...