文本三劍客之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
下一篇 2018-04-20

相關推薦

  • 八個虛擬機實現DNS互聯網架構搭建

    DNS全篇知識匯總實現

    2018-06-04
  • 運維之監控zabbix

    運維之監控zabbix 監控系統:硬件、軟件、業務指標;采樣;告警;存儲;展示; 可監控對象:設備/軟件設備:服務器、路由器、交換機、IO系統軟件:OS、網絡、應用程序偶發性小故障:主機down機、服務不可用、主機不可達嚴重故障:主機性能指標趨勢:時間序列數據 監控通道:ssh,snmp,telnet,agent,ipmi(智能平臺管理接口)等 著名的開源監…

    2018-08-06
  • shell腳本之判斷httpd是否有異常

    案例 以web為例 大全講解:如http為例 #/etc/init.d/httpd start????? 開啟httpd #lsof –i :80 [root@centos6 ~/bin]$curl -I -s -o /dev/null -w “%{http_code}\n” http://172.16.0.1 析:-I 是響應頭,響…

    Linux筆記 2018-05-20
  • TCP/IP協議詳解

    在前面的網絡基礎內容中我們了解了TCP/IP協議的定義以及TCP/IP模型的分層結構即:應用層,傳輸層,Internet層以及網絡訪問層。今天我來帶大家詳細了解下TCP/IP協議棧中的典型協議:傳輸層的TCP、UDP協議,網絡層的IP協議。

    2018-05-06
  • Shell腳本寫的備份還原工具 –reset.sh

    reset.sh腳本分兩個功能模塊,備份模塊和還原模塊;
    備份:備份指定文件到當前目錄,以備份時日期做為文件名
    還原模塊:可選擇性的還原指定時間的備份記錄

    2018-04-14
  • LAMP架構實現

    LAMP是一組Web應用軟件的組合,Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一組常用來搭建動態網站或者服務器的開源軟件,所有組成產品均是開源軟件,本身都是各自獨立的程序,但是因為常被放在一起使用,擁有了越來越高的兼容度,共同組成了一個強大的Web應用程序平臺。

    2018-06-23
欧美性久久久久