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

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 20:12
下一篇 2017-04-06 23:28

相關推薦

  • Linux命令1

    7-13 Linux命令   一、進入終端terminal 1..C1trl+Alt 釋放鼠標 2.ifconfig 查詢ip地址 3.Ping (IP地址) 查看聯網狀態 4.ls 查看            -l 列出文件 5.tty、who am i  查看當前的登錄終端名…

    Linux干貨 2017-07-15
  • MySQL主從復制:半同步、異步

            MySQL主從復制:半同步、異步 前言 如何對MySQL進行擴展? MySQL Replication WorkFlow MySQL主從復制模式 實戰演練 MySQL異步復制實現 MySQL半同步復制實現 實驗中的思考 總結 mysql 前言 本篇我們介紹MySQ…

    Linux干貨 2016-04-28
  • Nginx的編譯安裝

    nginx.html Nginx的編譯安裝 一、Nginx的特點 二、獲取并編譯Nginx 三、配置主頁面 四、配置編譯文件時的選項及模塊 一、Nginx的特點 1、Nginx 專為性能優化而開發,性能是其最重要的考量,實現上非常注重效率 。它支持內核 Poll 模型,能經受高負載的考驗,有報告表明能支持高達 50,000 個并發連接數。 2、Nginx 具…

    Linux干貨 2016-03-20
  • class17 網絡管理(二)

    IP 地址 它們可唯一標識IP網絡中的每臺設備 每臺主機(計算機、網絡設備、外圍設備)必須具有唯一的地址           IP 地址由兩部分組成:     ? 網絡ID:   …

    Linux干貨 2016-09-06
  • Kickstart

    1、安裝所需軟件包? yum -y install createrepo mkisofs isomd5sum 上傳centos6.9原始鏡像內容 mkdir /mnt/centos?? 創建掛載目錄 mount -o loop centos6.9 /mnt/centos?? 上傳centos6.9鏡像并且掛載至centos目錄 mkdir /tmp/iso?…

    2018-03-26
  • 正則表達式應用

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。    cp -a /etc/skel /home/tuser1    chmod g-x /home/tuser1…

    Linux干貨 2016-12-24

評論列表(1條)

  • renjin
    renjin 2017-04-12 11:30

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

欧美性久久久久