linuxgrep命令文本處理工具詳解
linuxgrep命令文本處理工具詳解
grep(Globel Search Regular Expression and Printing out the line)全面搜索正則表達(dá)式并把行打印出來)是一種強(qiáng)大的文本搜索工具,是一個對行進(jìn)行操作的搜索工作,它能使用正則表達(dá)式搜索文本,并把匹配的行打印出來。接下來是小編為大家收集的linuxgrep命令文本處理工具詳解,歡迎大家閱讀:
linuxgrep命令文本處理工具詳解
Unix的grep家族包括grep、egrep和fgrep。 egrep表示擴(kuò)展的grep,相比grep支持更多的元字符,"grep -E"相當(dāng)于egrep。fgrep是fast grep,不支持元字符,但是搜索速度更快。grep搜索的結(jié)果被送到屏幕,不影響原文件內(nèi)容。
1、grep的語法[] (man grep查看grep的幫助文檔)
grep [options] 'pattern' FILE
命令 選項 模式 文件
grep不加引號直接過濾字符串;grep在進(jìn)行模式匹配的時候必須加引號,單引和雙引號都可以;grep在引用變量的時候必須加雙引號
2、grep的選項[option]
-r:遞歸的搜索
-v:反向選取,只顯示不符合模式的行
-o:只顯示被模式匹配到的字符串,而不是整個行
-i:匹配時不區(qū)分大小寫
-A #:顯示匹配到的行時,順便顯示后面的#行(#表示數(shù)值)
-B #:前面的#行
-C #:前后的#行
-E:使用擴(kuò)展的正則表達(dá)式
eg:grep選項的例子
復(fù)制代碼代碼如下:
以上代碼直接粘貼復(fù)制在linux上可直接運行,代碼解釋運行效果,如下
3、 正則表達(dá)式(man regex)是指一個用來描述或者匹配一系列符合某個句法規(guī)則的字符串的單個字符串,通常被用來檢索或替換那些符合某個
模式的文本內(nèi)容。正則表達(dá)式分為:基本正則表達(dá)式和擴(kuò)展正則表達(dá)式。
元字符就是指那些在正則表達(dá)式中具有特殊意義的專用字符。
grep支持基本正則表達(dá)式的元字符:
^:錨點行首的符合條件的內(nèi)容,用法格式"^pattern"
$:錨點行首的符合條件的內(nèi)容,用法格式"pattern$"
^$:匹配空白行
.:匹配任意單個字符
*:匹配緊挨在前面的字符任意次(0,1,多次)
.*:匹配任意長度的任意字符
\?:匹配緊挨在前面的字符0次或1次
\{m,n\}:匹配其前面的字符至少m次,至多n次
\{m,\}:匹配其前面的字符至少m次
\{m\}:精確匹配前面的m次
\{0,n\}:0到n次
\<:錨點詞首----相當(dāng)于\b,用法格式:\
\>:錨點詞尾,用法格式:\>pattern
\
\(\):分組,用法格式:\(pattern\),引用第一個小括號的分組 class="main">
linuxgrep命令文本處理工具詳解
grep(Globel Search Regular Expression and Printing out the line)全面搜索正則表達(dá)式并把行打印出來)是一種強(qiáng)大的文本搜索工具,是一個對行進(jìn)行操作的搜索工作,它能使用正則表達(dá)式搜索文本,并把匹配的行打印出來。接下來是小編為大家收集的linuxgrep命令文本處理工具詳解,歡迎大家閱讀:
linuxgrep命令文本處理工具詳解
Unix的grep家族包括grep、egrep和fgrep。 egrep表示擴(kuò)展的grep,相比grep支持更多的元字符,"grep -E"相當(dāng)于egrep。fgrep是fast grep,不支持元字符,但是搜索速度更快。grep搜索的結(jié)果被送到屏幕,不影響原文件內(nèi)容。
1、grep的語法[] (man grep查看grep的幫助文檔)
grep [options] 'pattern' FILE
命令 選項 模式 文件
grep不加引號直接過濾字符串;grep在進(jìn)行模式匹配的時候必須加引號,單引和雙引號都可以;grep在引用變量的時候必須加雙引號
2、grep的選項[option]
-r:遞歸的搜索
-v:反向選取,只顯示不符合模式的行
-o:只顯示被模式匹配到的字符串,而不是整個行
-i:匹配時不區(qū)分大小寫
-A #:顯示匹配到的行時,順便顯示后面的#行(#表示數(shù)值)
-B #:前面的#行
-C #:前后的#行
-E:使用擴(kuò)展的正則表達(dá)式
eg:grep選項的例子
復(fù)制代碼代碼如下:
以上代碼直接粘貼復(fù)制在linux上可直接運行,代碼解釋運行效果,如下
3、 正則表達(dá)式(man regex)是指一個用來描述或者匹配一系列符合某個句法規(guī)則的字符串的單個字符串,通常被用來檢索或替換那些符合某個
模式的文本內(nèi)容。正則表達(dá)式分為:基本正則表達(dá)式和擴(kuò)展正則表達(dá)式。
元字符就是指那些在正則表達(dá)式中具有特殊意義的專用字符。
grep支持基本正則表達(dá)式的元字符:
^:錨點行首的符合條件的內(nèi)容,用法格式"^pattern"
$:錨點行首的符合條件的內(nèi)容,用法格式"pattern$"
^$:匹配空白行
.:匹配任意單個字符
*:匹配緊挨在前面的字符任意次(0,1,多次)
.*:匹配任意長度的任意字符
\?:匹配緊挨在前面的字符0次或1次
\{m,n\}:匹配其前面的字符至少m次,至多n次
\{m,\}:匹配其前面的字符至少m次
\{m\}:精確匹配前面的m次
\{0,n\}:0到n次
\<:錨點詞首----相當(dāng)于\b,用法格式:\
\>:錨點詞尾,用法格式:\>pattern
\
\(\):分組,用法格式:\(pattern\),引用第一個小括號的分組\1,第二個是\2,以此類推
[]:匹配指定范圍內(nèi)的任意單個字符
[^]:匹配指定范圍外的任意單個字符
eg:基本正則表達(dá)的例子
(1)、顯示/proc/meminfo文件中以不區(qū)分大小的s開頭的行;
grep "^[sS]" /proc/meminfo
(2)、顯示/etc/passwd中以nologin結(jié)尾的行;
grep "nologin$" /etc/passwd
(3)、顯示/etc/inittab中空格開頭的行;
grep "^$" /etc/inittab
(4)、顯示/etc/passwd中,以r開頭的字符而后跟了任意單個字符的行;
grep --color "^r." /etc/passwd
(5)、顯示/etc/passwd中,以r開頭后跟了o,o出現(xiàn)任意次的行;
grep --color "^ro*" /etc/passwd
(6)、顯示/etc/passwd文件中,r后跟了任意長度任意字符后跟了h的行;
grep --color "r.*h" /etc/passwd
(7)、顯示/etc/passwd中,r后跟了o,o出現(xiàn)0次或者1次的行;
grep --color "ro\?" /etc/passwd
(8)、顯示/etc/passwd中,r后跟了o,o出現(xiàn)至少1次至多2次的行;
grep --color "ro\{1,2\}" /etc/passwd
(9)、顯示/etc/passwd中,r后跟了o,o只出現(xiàn)2次的行;
grep --color "ro\{2\}" /etc/passwd
(10)、顯示/etc/passwd中,匹配root這個單詞的行;
grep --color "\
grep支持?jǐn)U展表達(dá)式的元字符:支持所有基本正則表達(dá)式的元字符,有些和基本元字符在用法上不一樣,擴(kuò)展正則表達(dá)式的命令egrep或者grep -E
?:匹配緊挨在前面的字符0次或1次
{m,n}:至少m次,至多n次
():分組
+:至少匹配前面的字符一次
a|b:匹配a或者b
eg:擴(kuò)展正則表達(dá)式的例子
(1)、顯示/etc/passwd中,r開頭后跟了o,o出現(xiàn)0次或者1次的行;
egrep --color "ro?" /etc/passwd
(2)、顯示/etc/passwd中,r開頭后跟了o,o出現(xiàn)至少1次至多2次的行;
egrep --color "ro{1,2}" /etc/passwd
(3)、顯示/etc/inittab文件中以一個數(shù)字開頭并以一個與開頭數(shù)字相同的數(shù)字結(jié)尾的;
egrep --color "^([0-9]).*\1$" /etc/inittab
看了“linuxgrep命令文本處理工具詳解”還想看:
[]:匹配指定范圍內(nèi)的任意單個字符
[^]:匹配指定范圍外的任意單個字符
eg:基本正則表達(dá)的例子
(1)、顯示/proc/meminfo文件中以不區(qū)分大小的s開頭的行;
grep "^[sS]" /proc/meminfo
(2)、顯示/etc/passwd中以nologin結(jié)尾的行;
grep "nologin$" /etc/passwd
(3)、顯示/etc/inittab中空格開頭的行;
grep "^$" /etc/inittab
(4)、顯示/etc/passwd中,以r開頭的字符而后跟了任意單個字符的行;
grep --color "^r." /etc/passwd
(5)、顯示/etc/passwd中,以r開頭后跟了o,o出現(xiàn)任意次的行;
grep --color "^ro*" /etc/passwd
(6)、顯示/etc/passwd文件中,r后跟了任意長度任意字符后跟了h的行;
grep --color "r.*h" /etc/passwd
(7)、顯示/etc/passwd中,r后跟了o,o出現(xiàn)0次或者1次的行;
grep --color "ro\?" /etc/passwd
(8)、顯示/etc/passwd中,r后跟了o,o出現(xiàn)至少1次至多2次的行;
grep --color "ro\{1,2\}" /etc/passwd
(9)、顯示/etc/passwd中,r后跟了o,o只出現(xiàn)2次的行;
grep --color "ro\{2\}" /etc/passwd
(10)、顯示/etc/passwd中,匹配root這個單詞的行;
grep --color "\
grep支持?jǐn)U展表達(dá)式的元字符:支持所有基本正則表達(dá)式的元字符,有些和基本元字符在用法上不一樣,擴(kuò)展正則表達(dá)式的命令egrep或者grep -E
?:匹配緊挨在前面的字符0次或1次
{m,n}:至少m次,至多n次
():分組
+:至少匹配前面的字符一次
a|b:匹配a或者b
eg:擴(kuò)展正則表達(dá)式的例子
(1)、顯示/etc/passwd中,r開頭后跟了o,o出現(xiàn)0次或者1次的行;
egrep --color "ro?" /etc/passwd
(2)、顯示/etc/passwd中,r開頭后跟了o,o出現(xiàn)至少1次至多2次的行;
egrep --color "ro{1,2}" /etc/passwd
(3)、顯示/etc/inittab文件中以一個數(shù)字開頭并以一個與開頭數(shù)字相同的數(shù)字結(jié)尾的;
egrep --color "^([0-9]).* class="main">
linuxgrep命令文本處理工具詳解
看了“linuxgrep命令文本處理工具詳解”還想看: