linux
系統中grep命令是一種
強大的文字搜尋工具
,它能使用正規表示式搜尋文字,並把匹配的行列印出來。grep全稱是global regular expression print,表示全域性正規表示式版本,它的使用許可權是所有使用者。
grep [option]...pattern [file] ...
[options]
主要引數:
-c:只輸出匹配了多少次。
-i:不區分大小寫(只適用於單字元)。
-h:查詢多檔案時不顯示檔名。
-l:查詢多檔案時只輸出包含匹配字元的檔名。
-n:顯示匹配行及行號。
-s:不顯示不存在或無匹配文字的錯誤資訊。
-v:顯示不包含匹配文字的所有行。
-d:跳過對子目錄的搜尋
-r: 對子目錄也進行查詢 \
:忽略正規表示式中特殊字元的原有含義。
^:匹配正規表示式的開始行,如:'^grep'匹配所有以grep開頭的行。
$:
匹配正規表示式的結束行,如'grep$'匹配所有以grep結尾的行。
\<
:從匹配正規表示式的行開始。如'\
\>
:到匹配正規表示式的行結束。
如'grep\>'匹配包含以grep結尾的單詞的行。
:匹配乙個指定範圍內的字元,如'[gg]rep'匹配grep和grep。需要特別留意的是,在 當中『僅代表乙個待搜尋的字元』
[ n1-n2 ]
:範圍,如[a-z],即a、b、c一直到z都符合要求 。
. :所有的單個字元。
* :有字元,長度可以為0。
\(..\)
:標記匹配字元,如'(love)',love被標記為1。
\:意義:重複前乙個字元n-m個,若為\則是重複前乙個字元n次,若是 \則是重複前乙個字答n次以上
+
匹配乙個或多個先前的字元。如:'[a-z]+able',匹配乙個或多個小寫字母後跟able的串,如loveable,enable,disable等。
?
匹配零個或多個先前的字元。如:'gr?p'匹配gr後跟乙個或沒有字元,然後是p的行。
a|b|c
匹配a或b或c。如:grep|sed匹配grep或sed
()
分組符號,如:love(able|rs)ov+匹配loveable或lovers,匹配乙個或多個ov。
引數不舉例了,見名思義,下面主要練習正規表示式 1
)正規表示式的運用(過濾出本機ip位址)
[root@yang1 lesson-1]# ifconfig eth0|grep 'inetaddr:'|sed 's/^.*addr:\([0-9]\\.[0-9]\\.[0-9]\\.[0-9]\\) bcast.*/\1/g'
10.0.0.29
解析:^.* 以任意字元開頭,並重複0次或多次
[0-9]\
重複匹配0-9中的字元1次或2次或3次
\( ……\) 標記匹配字元,第乙個\(\)標記為1,第二個\(\)標記為2
\1
取第1個標記中的內容
s/aa/b/g
屬於sed中的替換功能,把aa替換為b,例中把匹配的一行替換為標記1中的內容 2
)egrep擴充套件表示式運用
過濾出多個行要使用egrep
[root@yang1lesson-1]# ifconfig eth0|grep 'inet|inet6'
[root@yang1lesson-1]# ifconfig eth0|egrep 'inet|inet6'
inet addr:10.0.0.29 bcast:10.0.0.255 mask:255.255.255.0
inet6 addr:fe80::20c:29ff:fe6a:4121/64 scope:link
其它+? ()同理,需要使用egrep或grep -e
linux grep命令詳解
linux grep命令 1.作用 linux系統中grep命令是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹 配的行列印出來。grep全稱是global regular expression print,表示全域性正規表示式版本,它的使用許可權是所有使用者。2.格式 grep opt...
linux grep命令詳解
linux grep命令 1.作用 linux系統中grep命令是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹 配的行列印出來。grep全稱是global regular expression print,表示全域性正規表示式版本,它的使用許可權是所有使用者。2.格式 grep opt...
linux grep命令詳解
grep命令是linux下的行過濾工具,其引數繁多,下面就一一介紹個個引數的作用,希望對大家有所幫助。grep print lines matching a pattern 將符合樣式的該行列出 語法 grep options pattern file.grep用以在file內文中比對相對應的部分,...