. 任意一個字符
* 零個或多個*前面的字符
.* 零個或多個任意字符,即所有
egrep
+ 一個或多個+前面的字符
? 零個或一個?前面的字符
| 或者
[a-Z] 任意英文字母
[0-9] 任意數字
^[0-9] 以數字開頭
^[^0-9] 以非數字開頭
[0-9]$ 以數字結尾
^[a-Z] 以英文字母開頭
^[^a-Z] 不以英文字母開頭
[a-Z]$ 以英文字母結尾
‘^$’ 表示空行
‘^#’ 以#開頭
grep
語法:grep [-cinvABC] ‘word’ filename
-c 打印符合要求的行數
-i 忽略大小寫
-n 打印時連同行號一起顯示
-v 取反
-A 後跟一個數字n,打印時連同下面n行一起打印
-B 後跟一個數字n,打印時連同上面n行一起打印
-C 後跟一個數字n,打印時上下n行一起打印
-r 把目錄下所有文件遍歷一遍
例:
1、grep -n 'root' /etc/passwd //過濾包含關鍵字的行並顯示行號
2、grep -nv 'root' /etc/passwd //過濾不包含關鍵字的行並顯示行號
3、grep -i 'root' 1.txt //過濾關鍵字時忽略大小寫
4、grep -ic 'root' 1.txt //過濾關鍵字時忽略大小寫且只顯示行數
5、grep '[0-9]' /etc/passwd //過濾包含數字的行
6、grep -v '[0-9]' 1.txt //過濾不包含數字的行
7、grep -v '^#' 1.txt //過濾以#號開頭的行
8、grep -v '^#' 1.txt |grep -v '^$' //去除以#號開頭的行和所有空行
9、grep '^[a-Z]' 1.txt //過濾以英文字母開頭的行
10、grep '^[^0-9]' 1.txt //過濾以非數字開頭的行
11、grep 'r.o' 1.txt //過濾包含任意一個字符的行
12、grep 'r*o' 1.txt //過濾包含零個或多個*前面字符的行
13、grep 'o\{2\}' 1.txt //過濾字符的次數,2可以隨意更改
14、grep 'root' *.txt
//顯示當前目錄下所有txt文件中包含root的行(默認顯示文件名)
15、grep -h 'root' *.txt
//顯示當前目錄下所有txt文件中包含root的行,-h 不顯示文件名
egrep grep的擴展
1、egrep 'o+' 1.txt //過濾1個或多個+前面的字符
2、egrep '(oo)+' 1.txt //過濾1個或多個‘oo’
3、egrep 'o?' 1.txt //過濾0個或1個?前面的字符
4、egrep 'roo|body' 1.txt //過濾包含|前面或者後面的字符
5、egrep 'r(o|a)o' 1.txt //過濾包含roo或rao的字符
grep 和egrep 還可以過濾兩個或多個關鍵詞
grep -E 'abc|123' 1.txt
egrep 'abc|123' 1.txt