M20 – 1- 第三周博客(3):Linux上文本處理三劍客grep

Grep是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹配的行打印出來。

1、作用

Linux系統中grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹 配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用
權限是所有用戶

2、格式:

grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

3、選項

--color=auto: 對匹配到的文本著色顯示;
-v: 顯示不能夠被pattern匹配到的行;
-i: 忽略字符大小寫
-n:顯示匹配的行號
-c: 統計匹配的行數
-o: 僅顯示匹配到的字符串;
-q: 靜默模式,不輸出任何信息
-A #:after, 后#行
-B #: before, 前#行
-C #:context, 前后各#行
-e:實現多個選項間的邏輯or關系
grep –e ‘cat ’ -e ‘dog’ file
-w:整行匹配整個單詞
-E:使用ERE;相當于egrep

4、模式

分兩類:
基本正則表達式:BRE
擴展正則表達式:ERE (grep -E, egrep)

(1)基本正則表達式元字符:

字符匹配:某個字符的匹配

. :匹配任意單個字符;
[] :匹配指定范圍內的任意單個字符
[^] :匹配指定范圍外的任意單個字符
[:digit:]:任意數字,相當于0-9
[:lower:]:任意小寫字母
[:upper:]: 任意大寫字母
[:alpha:]: 任意大小寫字母
[:alnum:]:任意數字或字母
[:space:]:空格
[:punct:]:標點符號

匹配次數:用在要指定次數的字符后面,用于指定前面的字符要出現的次數

*:匹配前面的字符任意次,包括0次
貪婪模式:盡可能長的匹配
.*:任意長度的任意字符
\?:匹配其前面的字符0或1次
\+:匹配其前面的字符至少1次
\{m\}:匹配前面的字符m次
\{m,n\}:匹配前面的字符至少m次,至多n次
\{,n\}:匹配前面的字符至多n次
\{m,\}:匹配前面的字符至少m次

位置錨定:定位出現的位置

^:行首錨定,用于模式的最左側
$:行尾錨定,用于模式的最右側
^PATTERN$: 用于模式匹配整行
^$: 空行
^[[:space:]]*$ :空白行
\< 或\b:詞首錨定,用于單詞模式的左側
\> 或\b:詞尾錨定;用于單詞模式的右側
\<PATTERN\>:匹配整個單詞

分組:\(\):將一個或多個字符捆綁在一起,當作一個整體進行處理

分組括號中的模式匹配到的內容會被正則表達式引擎記錄于內部的變量中,這些變量的命名方式為: \1, \2, \3, ...
\1: 從左側起,第一個左括號以及與之匹配右括號之間的模式所匹配到的字符;
實例:\(string1\+\(string2\)*\)
\1: string1\+\(string2\)*
\2: string2
后向引用:引用前面的分組括號中的模式所匹配字符(而非模式本身)

(2)擴展正則表達式元字符:

字符匹配:某個字符的匹配

. :匹配任意單個字符;
[] :匹配指定范圍內的任意單個字符
[^] :匹配指定范圍外的任意單個字符
[:digit:]:任意數字,相當于0-9
[:lower:]:任意小寫字母
[:upper:]: 任意大寫字母
[:alpha:]: 任意大小寫字母
[:alnum:]:任意數字或字母
[:space:]:空格
[:punct:]:標點符號

匹配次數:用在要指定次數的字符后面,用于指定前面的字符要出現的次數

*:匹配前面字符任意次
?: 0或1次
+:1次或多次
{m}:匹配m次
{m,n}:至少m,至多n次

位置錨定:定位出現的位置

^ :行首
$ :行尾
\<, \b :語首
\>, \b :語尾

分組:():將一個或多個字符捆綁在一起,當作一個整體進行處理

()
后向引用:\1, \2,

或者:一種,或兩種以上

a|b
C|cat: C或cat
(C|c)at:Cat或cat

原創文章,作者:Aleen,如若轉載,請注明出處:http://www.www58058.com/30556

(0)
AleenAleen
上一篇 2016-08-08 16:14
下一篇 2016-08-08 16:14

相關推薦

欧美性久久久久