grep命令以及正則表達式

grep,正則表達式

#文件本過濾
grep
– –color=auto
– v #取反
– i #忽略大小寫
– n #顯示行號
– c #統計行數
– o #只顯示匹配模式的字符
– q #靜默模式
– A #找到所有的匹配行,并顯示匹配行后N行
– B #找到所有的匹配行,并顯示匹配行前面N行
– C #除了顯示符合范本樣式的那1列之外,并顯示該列之前后的N行
– e #grep -e root -e bash /etc/passwd,或者
– w #匹配整個單詞
– f #grep -f p_file,文件中存放要過濾的模式[包含]
– E #擴展正則表達式
– F #當于fgrep,不支持正則表達式
#數字+字母; 下劃線+字母,在grep中都算做是單詞
#正則表達式 REGEXP
正則表達式:BRE
元字符:字符匹配、匹配次數、位置錨定、分組
. 匹配任意單個字符
[] 匹配指定范圍內的任意單個字符
[^] 匹配指定范圍外的任意單個字符
[:alnum:] 字母和數字
[:alpha:] 代表任何英文大小寫字符
[:lower:] 小寫字母 [
[:blank:] 空白字符(空格和制表符
[:space:] 水平和垂直的空白字符,[包含回車和TAB鍵]
[:cntrl:] 不可打印的控制字符
[:digit:] 十進制數字 [:
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 標點符號
匹配次數:用在要指定次數的字符后面,用于指定前面的字符要出現的次數
* 匹配前面的字符任意次,包括0次
.* 任意長度的任意字符 #貪婪模式:盡可能長的匹配
\? 匹配其前面的字符0或1次
\+ 匹配其前面的字符至少1次
\{n\} 匹配前面的字符n次
\{m,n\} 匹配前面的字符至少m次,至多n次
\{,n\} 匹配前面的字符至多n次
\{n,\} 匹配前面的字符至少n次
#eg
echo axb |grep ax*b, echo axb |grep “ax*b”
echo “1a” |grep “[a-z]\+”
#.在中括號內,表示.本身,不需要轉義
eg: echo “1.” |grep “[a-z.]\+”
ifconfig ens38 |grep -o “[0-9.]\{7,\}”
#取分區利用率
df |grep “sd[a-z]\+[1-9]\+” |grep -o “[0-9]\{1,3\}%” |grep -o “[0-9]\+” |sort -nr |head -n1
#位置錨定,對于grep的單詞概念:字母、數字、下劃線都算是單詞
^
$
\< #錨定詞首
\> #錨定詞尾
\b,\b #表示詞首或詞尾
#分組
eg: echo “kingkingking” |grep “\(king\)\{3\}”
分組的引用:
\(string1\+\(string2\)*\)
\1 :string1\+\(string2\)*
\2 :string2
eg: grep “^\(.*\):.*/\1$” /etc/passwd
echo “rootaarbbt” |grep ‘\(r..t\).*\1’
echo “rootaaroot” |grep ‘\(r..t\).*\1’
echo “rootaarbbt” |grep ‘\(r..t\).*\(r..t\)’
#或者
| #grep “^\(a\|b\).*” /etc/passwd
eg:
echo axy |grep “\(a\|b\)xy” #過濾axy或bxy
echo axy |grep “a\|bxy” #過濾a或bxy
擴展正則表達式:ERE
擴展正則表達式
次數匹配:
*:匹配前面字符任意次
?: 0或1次
+:1次或多次
{m}:匹配m次
{m,n}:至少m,至多n次
位置錨定:
^ :行首
$ :行尾
\<, \b :語首
\>, \b :語尾
分組:
()
后向引用:\1, \2, …

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

(1)
凢洣陽光凢洣陽光
上一篇 2018-04-08
下一篇 2018-04-08

相關推薦

  • 網絡管理第一篇

    重點介紹OSI七層模型和TCP/IP四層模型,理解TCP三次握手和TCP的四次揮手以及IP地址的分類,另外基本的網絡配置命令下次在介紹,精彩內容請聽下回分解

    2018-04-28
  • 網線直連線與交叉線之間的區別

    UTP 直通線和交叉線

    Linux筆記 2018-05-05
  • 防火墻技術(一)

    防火墻(Firewall),也稱防護墻,是由Check Point創立者Gil Shwed于1993年發明并引入國際互聯網。它是一種位于內部網絡與外部網絡之間的網絡安全系統。一項信息安全的防護系統,依照特定的規則,允許或是限制傳輸的數據通過。

    2018-06-30
  • 淺析網絡IO模型

    物是人非事事休,欲語淚先流。

    2018-04-09
  • 7月2日~7月8日作業

    1、列出當前系統上所有已經登入的用戶的用戶名,注意:同一個用戶登入多次,則只顯示一次即可。 ~]# who | cut -d ?‘ ?’ ? -f1 ?| ?sort ?-u 2、取出最后登入到當前系統的用戶的相關信息。 3、取出當前系統上被用戶當作默認shell的最多的那個shell. 4、將/etc/passwd中的第三個字段數值最大的后10個用戶信息全…

    2018-07-07
  • iproute家族命令

    1 ifconfig up 啟動指定網絡設備/網卡down 關閉指定網絡設備/網卡-a 顯示全部接口信息-s 顯示摘要信息add 設置指定網卡配置IPv6地址del 刪除指定網卡配置IPv6地址mtu<字節數> 設置網卡的最大傳輸單元(bytes)netmask<子網掩碼>設置網卡的子網掩碼multicast 為網卡設置組播標志 例子…

    Linux筆記 2018-04-15
欧美性久久久久