Linux文本處理三劍客
-
grep:文本過濾(模式:psttern)工具
grep,egrep,fgrep (不支持正則表達式搜索)
-
sed:stream editor,文本編輯工具
-
awk:Linux上的實現gawk,文本報告生成器
下面就先談一談:grep及正則表達式;egrep及擴展的正則表達式
grep
-
grep:Goobal search REgular expression and Print out the line
作用:文本搜索工具,根據用戶指定的“模式”對目標文本逐行進行匹配檢查;打印匹配到的行
模式:用正則表達式字符及文本字符所編寫的過濾條件
grep命令選項
- –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
- -F:相當于fgrep,不支持正則表達式
正則表達式
REGEXP:由一類特殊字符及文本字符所編寫的模式,其中有些字符(元字符)不表示字符字面意義,而表示控制或通配的功能
基本正則表達式元字符
元字符 | 定義 |
---|---|
^ | 位置錨定:行首 |
$ | 位置錨定:行尾 |
. | 任意單一字符 |
[ ] | [ ]內任意單一字符 |
[^] | 除[ ]內任意單一字符 |
* | *前面字符重復不確定次數 |
+ | +前面字符重復一次以上不確定次數 |
? | ?前面字符重復0或1次 |
\ | 轉義符 |
.* | 任意長度字符 |
{n} | 前面字符重復n次 |
{n,} | 前面字符重復n次以上 |
{m,n} | 前面字符重復m次和n次之間 |
[:alnum:] | 字母和數字 |
[:alpha:] | 代表任何英文大小寫字符,亦即A-Z,a-z |
[:lower:] | 小寫字母 |
[:upper:] | 大寫字母 |
[:blank:] | 水平空白字符(空格和制表符) |
[:space:] | 所有水平和垂直的空白字符(比[:blank:]包含的范圍廣) |
[:cntrl:] | 不可打印的控制字符(退格,刪除,警鈴…) |
[:digit:] | 十進制數字 |
[:graph:] | 可打印的非空白字符 |
[:print:] | 可打印字符 |
[:punct:] | 標點符號 |
[:xdigit:] | 十六進制數字 |
egrep
- egrep = grep -E
- egrep [OPTIONS] PATTERN [FILE…]
擴展的正則表達式的元字符
元字符 | 定義 |
---|---|
. | 任意單個字符 |
[ ] | 指定范圍的字符 |
[^] | 不在指定范圍的字符 |
* | 匹配前面字符任意次 |
? | 0或1次 |
+ | 1次或多次 |
{m} | 匹配m次 |
{m,n} | 匹配至少m次,之多n次 |
^ | 位置錨定:行首 |
$ | 位置錨定:行尾 |
<,\b | 位置錨定:詞首 |
>,\b | 位置錨定:詞尾 |
( ) | 分組 |
\1,\2 | 后向引用 |
學之前是拒絕的,學之后是懵逼的。
原創文章,作者:XIAJIDONG,如若轉載,請注明出處:http://www.www58058.com/72678
詳細介紹了正則表達式的知識點,內容寫的很不錯,排版也很好