Linux篇---Grep和正則匹配

LHBlog發表於2018-01-19

一.前述

Linux中正則匹配查詢比較常用,所以分享一篇關於正則匹配和Grep結合的文章。

二.匹配規則

匹配操作符:

\                  轉義字元
.                      匹配任意單個字元
[1249a],[^12],[a-k]  字元序列單字元佔位
^                 行首
$                  行尾
\<,\>:\<abc           單詞首尾邊界
|                   連線操作符
(,)              選擇操作符
\n             反向引用

重複操作符:
?          匹配0到1次。
*          匹配0到多次。
+         匹配1到多次。
{n}       匹配n次。
{n,}      匹配n到多次。
{n,m}      匹配n到m次。
與擴充套件正規表示式的區別:grep basic
\?, \+, \{, \|, \(, and \)
匹配任意字元 .*
三。示例

oxx12121212ooxx
ooxx 12121212
oox 12121212
1212 ooxx 1212
oo3xx
oo4xx
ooWxx
oomxx
$ooxx
oo1234xx
ooxyzxx

查詢有ooxx單詞的行

grep "\<ooxx\>" test.txt

 

查詢以ooxx開頭的單詞

 

 查詢有數字的行

grep "[0-9]" test.txt;

grep "[34]" test.txt;

ps:【】是一個字元序列,佔位符。

 

 查詢有4個數字的行

grep "[0-9]\{4\}" test.txt

ps:重複操作符,自定義的需要轉義。

 

 查詢有4個數字的行,但前後都沒有數字的行

grep "[^0-9][0-9]\{4\}[^0-9]" test.txt

ps:^是取反的意思。

 

相關文章