歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> grep正則表達式

grep正則表達式

日期:2017/2/28 13:57:55   编辑:Linux教程

正則表達式是一種符號表示法,用於識別文本模式。Linux處理正則表達式的主要程序是grep。grep搜索與正則表達式匹配的,並將結果輸送至標准輸出。

1. grep匹配模式

grep按下述方式接受選項和參數(其中,regex表示正則表達式)

1
grep [options] regex [files]

其中options主要為下表:

選項 含義 功能描述 -i ignore case 忽略大小寫 -v invert match 不匹配匹配的 -l file-with-match 輸出匹配的文件名 -L file-without-match 輸出不匹配的文件名 -c count 輸出匹配的數目(行數) -n number 輸出匹配行的同時在前面加上文件名及在文件名中的行數 -h no-filename 抑制文件名的輸出

舉例說明

假設有三個文件del1、del2、del3三個文件的內容如下

例子

2. 特殊字符

符號 含義 舉例 ^ 開始標記 “^abc”滿足的例子abc、abcd ^ 非(在[]內) “[^abc]“滿足的例子:ddd、mpd $ 結束標記 ”abc$”滿足的例子abc、mmabc . 任意字符 “a.c”滿足的例子abc、fapcc < 匹配單詞開始 “<abc”滿足的例子abc、abcd > 匹配單詞結束 “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}分別為匹配前一個字符m次、m到n次、≥m次、≤n次 “abc{3,5}”滿足的例子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:] 空白字符,等價於[trnvf] [:punct:] 標點符號 [:cntrl:] ASCII控制碼,包括字符0~31以及127

例子

Linux 基礎入門教程----正則表達式基礎 http://www.linuxidc.com/Linux/2015-08/121441.htm

Linux正則表達式sed 詳述 http://www.linuxidc.com/Linux/2015-04/116309.htm

Linux正則表達式特性及BRE與ERE的區別 http://www.linuxidc.com/Linux/2014-03/99152.htm

grep使用簡明及正則表達式 http://www.linuxidc.com/Linux/2013-08/88534.htm

正則表達式的用法 http://www.linuxidc.com/Linux/2013-03/81897.htm

正則表達式之零寬斷言 http://www.linuxidc.com/Linux/2013-03/81897.htm

Linux中正則表達式與文件格式化處理命令(awk/grep/sed) http://www.linuxidc.com/Linux/2013-03/81018.htm

基礎正則表達式 http://www.linuxidc.com/Linux/2014-09/106296.htm

常用正則表達式整理 http://www.linuxidc.com/Linux/2014-10/108076.htm

Copyright © Linux教程網 All Rights Reserved