與正則表達式的第一次親密接觸

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

(0)
XIAJIDONGXIAJIDONG
上一篇 2017-04-06
下一篇 2017-04-06

相關推薦

  • shell編程中的三種流程控制

    流程控制 v 一 、過程式編程語言: 1.順序執行 2.選擇執行 3.循環執行  條件選擇if 語句   選擇執行:   注意: :if 語句可 嵌套    單分支 if 判斷條件;then 條件為真的分支代碼 fi    雙分支 if 判斷條件; then …

    Linux干貨 2016-08-21
  • 日志分析工具Awstats實戰之Nginx篇-分析結果動態化

    上一篇博文“分析工具Awstats實戰之Nginx篇-分析結果靜態化”介紹了如何將awstats的日志分析信息用靜態頁面來進行顯示,不過顯示效果肯定沒有動態的好啦。本篇博文將帶大家一起來部署動態的分析結果查閱。 環境: CentOS 6.4 ip:192.168.1.113 域名:www.sunsky.com(server和client都通過hos…

    Linux干貨 2016-08-15
  • rpm包管理

    前言    RPM(簡稱RPM,全稱為The RPM Package Manager)是在Linux下廣泛使用的軟件包管理器。RPM此名詞可能是指.rpm的文件格式的軟件包,也可能是指其本身的軟件包管理器(RPM Package Manager)。最早由Red Hat研制,現在也由開源社區開發。RPM通常隨附于Linux發行版,…

    Linux干貨 2015-05-13
  • 磁盤配額的操作步驟

    磁盤配額 操作步驟: 1、創建一個10G的分區 /dev/sdd1并將其格式化,掛載 2、如果是新硬盤便不存在同步問題。舊硬盤得使用命令partx  -a /dev/sdd1 3、臨時創建掛載文件夾 /mnt/home    4、將/home/*  mv  到 /mnt/home 中,再將/dev/…

    Linux干貨 2016-09-01
  • 馬哥教育網絡班22期+第一周課程練習

    1、描述計算機的組成及其功能。 計算機由硬件系統、操作系統和應用軟件所組成,沒有安裝任何軟件的計算機稱為裸機。 1.1、硬件系統由運算器、控制器、存儲器、輸入設備和輸出設備五大部分組成,遵循馮、諾依曼原理。 控制器:讀取分析指令,向其它部分發出控制信號,保證計算機按照預先規定的目標和步驟有條不紊地進行操作及處理。  運算器:對數據進行各種運算,例如…

    Linux干貨 2016-08-22
  • VMware虛擬機設置網絡(包含簡單安裝)

    1.下載VMware虛擬機 2.創建一個虛擬機,選擇下載好的linux系統,我這里選擇的是CentOS版本,之后一直按著步驟設置一般都選擇默認就好                               &…

    2017-09-02

評論列表(1條)

  • renjin
    renjin 2017-04-12 11:30

    詳細介紹了正則表達式的知識點,內容寫的很不錯,排版也很好

欧美性久久久久