正規表示式是一種符號表示法,用於識別文字模式。linux處理正規表示式的主要程式是grep。grep搜尋與正規表示式匹配的行,並將結果輸送至標準輸出。
1. grep匹配模式
grep按下述方式接受選項和引數(其中,regex表示正規表示式)
grep [options] regex [files]其中options主要為下表:
選項含義
功能描述
-iignore case
忽略大小寫
-vinvert match
不匹配匹配的
-lfile-with-match
輸出匹配的檔名
-lfile-without-match
輸出不匹配的檔名
-ccount
輸出匹配的數目(行數)
-nnumber
輸出匹配行的同時在前面加上檔名及在檔名中的行數
-hno-filename
抑制檔名的輸出
舉例說明
假設有三個檔案del1、del2、del3三個檔案的內容如下
例子
2. 特殊字元
符號含義舉例^
開始標記
"^abc"滿足的例子abc、abcd
^非(在內)
"[^abc]"滿足的例子:ddd、mpd
$結束標記
」abc$」滿足的例子abc、mmabc
.任意字元
"a.c"滿足的例子abc、fapcc
\<
匹配單詞開始
"\\>
匹配單詞結束
"abc\>"滿足的例子abc、pmrabc|或
"aaa|bbb"滿足的例子aaa、bbbpp
3. 範圍
符號含義舉例?
匹配前乙個字元0或1次
"abc?"滿足的例子ab、mabcd
*匹配前乙個字元≥0次
"abc*"滿足的例子abbb、abcdk
+匹配前乙個字元≥1次
"abc+"滿足的例子abcd、abcccdd
{}、、、分別為匹配前乙個字元m次、m到n次、≥m次、≤n次
"abc\"滿足的例子abcccc、abcccccc
內如果不是範圍,選其一;是範圍的話,範圍內選其一
"m[abc]p"滿足的例子acpd;m[1-9]p滿足的例子m8pp
()將候選的所有元素放在()內,用|隔開
"a(1|2|3)bc"滿足的例子a1bc、mba3bcd
注意:{}在鄭則表示式中需要轉移,而{}()不需要。
注意理解{}範圍的例子:
4. 標準字元類
字元類釋義
[:alnum:]
字母和數字,與[a-za-z0-9]等價
[:word:]
[:alnum:]加上下劃線_
[:alpa:]
字母,與[a-za-z]等價
[:digit:]
數字,與[0-9]等價
[:xdigit:]
十六進製制字元,與[0-9a-fa-f等價]
[:blank:]
空格和製表符
[:graph:]
可見字元,靠擴33~126
[:lower:]
小寫字母
[:upper:]
大寫字母
[:print:]
可列印字元
[:space:]
空白字元,等價於[\t\r\n\v\f]
[:punct:]
標點符號
[:cntrl:]
ascii控制碼,包括字元0~31以及127
例子
視覺化正規表示式
工具:regexper
Linux正規表示式grep
正規表示式是一種符號表示法,用於識別文字模式。linux處理正規表示式的主要程式是grep。grep搜尋與正規表示式匹配的行,並將結果輸送至標準輸出。1.grep匹配模式 grep按下述方式接受選項和引數 其中,regex表示正規表示式 1 grep options regex files 其中op...
Linux正規表示式 grep
grep命令 grep cinvabc word filename常用選項解釋 c 列印符合要求的行數。i 忽略大小寫。n 輸出符合要求的行及行號。v 列印不符合要求的行。a 後跟數字n 有無空格都可 列印符合要求的行和下面n行。b 後跟數字n,列印符合要求的行和上面n行。c 後跟數字n,列印符合要...
Linux正規表示式 grep
一 正規表示式 正規表示式描述了乙個字串匹配的規則,常用來匹配滿足匹配規則的文字。它定義了自己的語法,正規表示式中的字元可以分為普通字元和元字元,元字元在正規表示式中有特殊的含義。先看一下簡單的正規表示式 bhelloworld b 這個正規表示式用來精確匹配helloworld這個字串。b是乙個元...