學(xué)習(xí)啦>學(xué)習(xí)電腦>操作系統(tǒng)>Linux教程>

linux-shell腳本命令grep命令

時(shí)間: 志藝942 分享

  grep是用來過濾含有特定字符的行, 能使用正則表達(dá)式搜索文本, 它在數(shù)據(jù)中查找一個(gè)字符串時(shí), 是以正行為單位進(jìn)行數(shù)據(jù)選取的. 接下來是小編為大家收集的linux-shell腳本命令grep命令,歡迎大家閱讀:

  linux-shell腳本命令grep命令

  [ 常用選項(xiàng): ]

  -c:只輸出匹配行的計(jì)數(shù)。

  -i:不區(qū)分大小寫(只適用于單字符)。

  -n:顯示匹配行及行號。

  -s:不顯示不存在或無匹配文本的錯(cuò)誤信息。

  -v:顯示不包含匹配文本的所有行。

  [ 正則元字符: ]

  grep可以結(jié)合正則表達(dá)式使用, 下面介紹一些常用的正則表達(dá)式過濾字符的用法。 \ :轉(zhuǎn)義字符,忽略正則表達(dá)式中特殊字符的原有含義。

  ^ :匹配以某個(gè)字符串開始的行。

  $ :匹配以某個(gè)字符串結(jié)束的行。

  \<:匹配單詞的開始。

  \>:匹配單詞的結(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. ^表示行開頭 grep '^bbb' aaa.txt --color # 從文件aaa.txt中查找以bbb開頭的行。

  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è)字符可以有也可以沒有

  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開頭的行。 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表示任意字符(大小寫字母、數(shù)字、下劃線), \W表示不是字母、數(shù)字、下劃線。

  注意: ^ 出現(xiàn)在 [ ] 外面的話表示'開頭', 如果出現(xiàn)在 [ ] 里面的話表示'否定' grep '^[^Bb]..' aaa.txt --color # 從文件aaa.txt中查找不是以B或b開頭, 而且后面還有兩個(gè)字符的行。

  8. \< 匹配單詞的開頭

  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之類的忽略掉。

  11. 用\(\)做標(biāo)簽, 后面想引用就用\n (n是一個(gè)數(shù)字), class="main">

linux-shell腳本命令grep命令

時(shí)間: 志藝942 分享

  grep '\(tom\)... class="main">

linux-shell腳本命令grep命令

時(shí)間: 志藝942 分享

  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命令”還想看:

1.Linux文本匹配命令grep與fgrep使用全解

2.linux grep搜索命令的使用方法

3.15個(gè)Linux Grep命令使用實(shí)例

4.Linux中執(zhí)行shell腳本的方法

2992480