文本三劍客之grep

簡述grep

grep:

作用:文本搜索工具,根據用戶制定的“(過濾模式)” 對目標文本逐行進行匹配檢查;打印匹配的行;

模式:由正則表達式的元字符及文本字符所編寫出的過濾條件;

grep [選項] PATTERN? [FILE]

常用選項:

–color=auto ? ? ? ? ? ?? #自動對匹配到的文本加顏色,默認紅色

-i ? ? #ignorecase,忽略字符大小寫;

-o ?? #僅顯示匹配到的字符串本身

-v ?? #反向匹配,顯示不能被模式匹配到的行

-E ?? #支持使用擴展的正則表達式

-q ?? #靜默模式,既不輸出任何信息

#號表示數字

-A? # ? ? ? ? ? ? ? ? #? 后#行

-B? # ? ? ? ? ? ? ?? # ? 前#行

-C? # ? ? ? ? ? ? ?? # ?? 前后各#行

基本正則表達式元字符

字符匹配:

.? :匹配任意單個字符

[]: 匹配指定范圍內內的單個字符

[^]:匹配非指定范圍內的單個字符

[:digit:] 、[:lower:]、[:upper:]、[:alpha:]、[:alnuml:]、[:punct:]、 . . .

匹配次數:用在要指定其出現的次數的字符后面,用于限制其前面字符出現的次數;默認工作在貪婪模式

*:匹配前面的字符任意次,0,1,? 多次;

例如: grep “x*y”

abxy

aby

xxxxxy

yab

.*:匹配任意長度的任意字符

\?:匹配其前面的字符0次或1次

\+:匹配其前面的字符1次或多次;前面的字符要出現至少一次;

\{m\}:匹配其前面的字符m次;m表示數字;

\{m,n}:匹配其前面的字符至少m次,至多n次;

\{0,n}:至多n次

\{m,\}:至少m次

位置錨定:

^:行首錨定;用于模式最左側;

$:行尾錨定;用于模式最右側;

^PATTERN$:用PATTERN匹配整行;

^$:? 空白行

^[[:space:]]*$:空行或包含空白字符的行;

單詞:非特殊字符組成的連續字符串都成為單詞;

\<或\b:詞首錨定,用于單詞模式的左側;

\>或\b:詞尾錨定,用于單詞模式的右側;

\<PATTERN\>:精確錨定單詞;

分組及引用:

\(\):將一個或多個字符捆綁在一起,當做一個整體進行處理;

\(xy\)*ab

分組括號中的模式匹配到的內容會被正則表達式引擎自動記錄與內部的變量中,這些變量為:

\1:模式從左側起,第一個左括號以及與之匹配的右括號之間的模式所匹配到的字符:

\2

\3

He?loves?his?lover
He?likes?his?lover
She?likes?her?liker
She?loves?her?liker

[ root@centos7~]#?grep?“\(l..e\).*\1”?test.txt
#?后向引用:引用前面的分組括號中的模式所匹配到的字符;

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/96657

(1)
會飛的蝸牛會飛的蝸牛
上一篇 2018-04-20 18:39
下一篇 2018-04-20 19:54

相關推薦

  • Linux第一周小結

    Linux常用命令、鏈接

    Linux筆記 2018-04-01
  • at和crontab命令簡述

      at用于計劃任務的執行,不過只能執行一次: 1 確定時間 at time 2 確定時刻想要執行的內容 command …     crontab 也用于執行計劃任務,可以設定確定的時間多次執行計劃任務,時間精確的分鐘,可將計劃任務按照規定的格式寫入配置文件內,配置文件分為六個字段,分別是:分 時 日 月 周 要執…

    Linux筆記 2018-04-08
  • 第二周筆記

    ### 4 月2日筆記 – #### IO重定向“`I:input指的是標準輸入 描述符用0表示O:output指的是標準輸入 描述符用1表示標準錯誤 描述符用2表示“`一般文件或者命令的標準輸入是指的鍵盤,標準輸出是值得終端窗口。我們用重定向來改變他們的方向大于號> 表示標準輸出:把輸出內容定向到一個文件中&#82…

    Linux筆記 2018-04-01
  • linux 的基礎命令以及快捷鍵的總結

    前兩張給大家介紹了 計算機的最基礎的東西,今天才真正開始學習linux,那么也是linux最基礎的東西。 學習了大約兩周的時間吧!對于我這個愛國者 英語啥也不懂的來說。好想說聲“馬哥 能退錢不,我想回農村”, 當然了 這只是個玩笑話,我是誰,” 打不死的小強”,要么你征服我,要么你被我征服 ,對于我來說,前者別想。 言歸正…

    2018-07-28
  • Linux系統MBR的修復方法

    grub boot loader

    2018-05-09
  • linux 學習5

    第五周(7.16-7.30)

    2018-07-30
欧美性久久久久