linux-shell腳本命令grep命令
grep是用來(lái)過(guò)濾含有特定字符的行, 能使用正則表達(dá)式搜索文本, 它在數(shù)據(jù)中查找一個(gè)字符串時(shí), 是以正行為單位進(jìn)行數(shù)據(jù)選取的. 接下來(lái)是小編為大家收集的linux-shell腳本命令grep命令,歡迎大家閱讀:
linux-shell腳本命令grep命令
[ 常用選項(xiàng): ]
-c:只輸出匹配行的計(jì)數(shù)。
-i:不區(qū)分大小寫(xiě)(只適用于單字符)。
-n:顯示匹配行及行號(hào)。
-s:不顯示不存在或無(wú)匹配文本的錯(cuò)誤信息。
-v:顯示不包含匹配文本的所有行。
[ 正則元字符: ]
grep可以結(jié)合正則表達(dá)式使用, 下面介紹一些常用的正則表達(dá)式過(guò)濾字符的用法。 \ :轉(zhuǎn)義字符,忽略正則表達(dá)式中特殊字符的原有含義。
^ :匹配以某個(gè)字符串開(kāi)始的行。
$ :匹配以某個(gè)字符串結(jié)束的行。
\<:匹配單詞的開(kāi)始。
\>:匹配單詞的結(jié)束。
[ ]:在[]內(nèi)某單個(gè)字符,如[A]即表示 A 符合要求。
[ - ]:屬于[ - ]所標(biāo)記的范圍字符,如[A-Z],即A、B、C一直到Z都符合要求。
. :表示一定有1個(gè)任意字符。
* :前面字符可以出現(xiàn)任意次。
? :前面字符出現(xiàn)0次或1次。
+ :前面字符出現(xiàn)一次或多次。
[ 正則示例: ]
1. ^表示行開(kāi)頭 grep '^bbb' aaa.txt --color # 從文件aaa.txt中查找以bbb開(kāi)頭的行。
2. $表示行結(jié)尾 grep 'bbb$' aaa.txt --color # 從文件aaa.txt中查找以bbb結(jié)尾的行。
3. .表示單個(gè)字符, 它可以匹配除換行符之外的所有字符。 grep 'bbb...' aaa.txt --color # 從文件aaa.txt中查找bbb后面含有三個(gè)字符的行, '點(diǎn)'可以匹配空格。
4. * 表示它前面的那個(gè)字符可以出現(xiàn)任意次 grep 'bbb.*' aaa.txt --color # 從文件aaa.txt中查找bbb后面有任意個(gè)字符的行。
5. + 表示它前面的那個(gè)字符至少要出現(xiàn)一次 grep -E 'bbb.+' aaa.txt --color # 從文件aaa.txt中查找bbb后面至少會(huì)出現(xiàn)一個(gè)字符的行。
6. ? 表示它前面的那個(gè)字符可以有也可以沒(méi)有
grep -E 'bbbc?' aaa.txt --color # 從文件aaa.txt中查找存在bbb或bbbc的行。 注意: grep不支持 + 、? 這兩個(gè)元字符, 如果想使用, 只能使用擴(kuò)展的grep (egrep 或 grep -E)
7. [ ] 表示匹配一個(gè)字符, 出現(xiàn)在[ ]里面的字符都是或的關(guān)系 grep '^[Bb]bb' aaa.txt --color # 從文件aaa.txt中查找以Bbb或bbb開(kāi)頭的行。 grep '[0-9]' aaa.txt --color # 從文件aaa.txt中查找含有數(shù)字的行 grep -P '\d' aaa.txt --color # 從文件aaa.txt中查找含有數(shù)字的行, -P表示使用perl的正則表達(dá)式 \d表示數(shù)字, \D表示非數(shù)字 \s表示空格或tab, \S表示不是空格或tab \w表示任意字符(大小寫(xiě)字母、數(shù)字、下劃線), \W表示不是字母、數(shù)字、下劃線。
注意: ^ 出現(xiàn)在 [ ] 外面的話表示'開(kāi)頭', 如果出現(xiàn)在 [ ] 里面的話表示'否定' grep '^[^Bb]..' aaa.txt --color # 從文件aaa.txt中查找不是以B或b開(kāi)頭, 而且后面還有兩個(gè)字符的行。
8. \< 匹配單詞的開(kāi)頭
grep '\
9. \> 匹配單詞的結(jié)束
grep '\>Tom' aaa.txt --color # 從文件aaa.txt中查找單詞以Tom結(jié)尾的行。
10. 匹配某個(gè)單詞, 而不是某個(gè)字符串的一部分
grep '\bTom\b' aaa.txt --color # 從文件aaa.txt中查找含有單詞Tom的行, 如果是aTomb之類(lèi)的忽略掉。
11. 用\(\)做標(biāo)簽, 后面想引用就用\n (n是一個(gè)數(shù)字), class="main">
linux-shell腳本命令grep命令
linux-shell腳本命令grep命令
12. \{n\} 表示前面的字符要出現(xiàn)n次
grep 'tomx\{3\}' aaa.txt --color # 從文件aaa.txt中查找tomx, x要出現(xiàn)3次, 如: tomxxx grep 'tomx\{3,\}' aaa.txt --color # 從文件aaa.txt中查找tomx, x至少要出現(xiàn)三次, 如tomxxx 或 tomxxxx grep 'tomx\{3,4\}' aaa.txt --color # 從文件aaa.txt中查找tomx, x出現(xiàn)3次或4次, 如tomxxx 或 tomxxxx
看了“linux-shell腳本命令grep命令”還想看:
熱門(mén)文章
-
智能監(jiān)測(cè)自動(dòng)重啟Apache服務(wù)器的Shell腳本
linux下監(jiān)視進(jìn)程 崩潰掛掉后自動(dòng)重啟的shell腳本
自動(dòng)重啟服務(wù)的shell腳本代碼
使用腳本實(shí)現(xiàn)故障時(shí)自動(dòng)重啟Apache代碼
linux自動(dòng)重啟tomcat腳本代碼實(shí)現(xiàn)
可以定時(shí)自動(dòng)關(guān)機(jī)的vbs腳本
執(zhí)行Shell腳本有幾種方法
Linux中利用grep命令如何檢索文件內(nèi)容
如何在 Linux 啟動(dòng)時(shí)自動(dòng)執(zhí)行命令或腳本
Linux下通過(guò)腳本自動(dòng)備份Oracle數(shù)據(jù)庫(kù)并刪除指定天數(shù)前的備份