正則介紹、grep介紹

正則介紹

grep介紹

grep -c 顯示符合條件的內容有多少行php

[root@glinux-01 ~]# cat 2.txt
aaaa
bbbb
AAAA
avavav
123
445ff
[root@glinux-01 ~]# grep -c aaa 2.txt
1
[root@glinux-01 ~]# grep -c A 2.txt
1

grep -n 顯示符合條件的行號html

[root@glinux-01 ~]# grep -n a 2.txt
1:aaaa
4:avavav

-i 不區分大小寫linux

[root@glinux-01 ~]# grep -i a 2.txt
aaaa
AAAA
avavav

-A 顯示符合條件的內容和下面n行(-A2就是下面2行)spa

[root@glinux-01 ~]# cat 2.txt
aaaa
bbbb
AAAA
avavav
123
445ff
[root@glinux-01 ~]# grep -A2 "A" 2.txt 
AAAA
avavav
123

grep/egrep示例

grep -v '^#' /etc/inittab 匹配以井號開頭的內容取反.net

grep -v '[^0-9]' 匹配數字的行code

[root@glinux-01 ~]# grep [^0-9] 2.txt 匹配非數字的行
aaaa
bbbb
AAAA
avavav
445ff
[root@glinux-01 ~]# grep -v [^0-9] 2.txt 匹配數字的行
123

 grep '^[^0-9]' 2.txt 匹配以非數字開頭的行htm

[root@glinux-01 ~]# grep '^[^0-9]' 2.txt
aaaa
bbbb
AAAA
avavav
grep 「a*」 test_rule.txt
匹配全部內容,包括空白行
Grep 「aa*」 test_rule.txt 匹配至少包含一個a的行
Grep 「aaa*」 test_rule.txt 匹配至少包含兩個a的行
grep 「s..d」  test_rule.txt 匹配s和d之間有兩個字符的單詞
Grep 「s.*d」 test_rule.txt 匹配 s和d之間有任意字符的單詞
grep 「.*」   test_rule.txt 匹配全部內容

+:匹配+ 前的的字符一次或屢次遞歸

[root@g_linux01 ~]# grep  'a\+a' 1.txt
aaabbb
[root@g_linux01 ~]# grep  'a\+' 1.txt
abc
aaabbb

?:匹配?前的字符0次或一次文檔

[root@g_linux01 ~]# grep  'a\?' 1.txt
123
abc
aaabbb
123
1
1
ABC
QWE

|或者。例:匹配A或者Qget

[root@g_linux01 ~]# egrep 'A|Q' 1.txt
ABC
QWE

egrep

egrep = grep -E 能夠使參數中的特殊符號不需加脫義符。

a{2}  表示2對a 。

[root@g_linux01 ~]# grep -E a{2} 1.txt
aaabbb
[root@g_linux01 ~]# grep  'a\{2\}' 1.txt  //須要將括號{}脫義
aaabbb

 (aa){2} 表示2對aa

[root@g_linux01 ~]# egrep '(aa){2}' 1.txt
aaaabbb
#只在目錄中全部的.php和.html文件中遞歸搜索字符"main()"
grep "main()" . -r --include *.{php,html}

#在搜索結果中排除全部README文件
grep "main()" . -r --exclude "README"

#在搜索結果中排除filelist文件列表裏的文件
grep "main()" . -r --exclude-from filelist
把一個目錄下,過濾全部*.php文檔中含有eval的行
grep -r --include="*.php" 'eval' /data/
相關文章
相關標籤/搜索