1. 程式人生 > >Linux命令三劍客之grep常用參數詳解

Linux命令三劍客之grep常用參數詳解

grep 三劍客 linux 系統

Linux命令三劍客之grep
介紹
grep在三劍客中排行老三,是一個簡單文本過濾命令,除了grep本身外還有兩種擴展grep。
grep:文本過濾(基礎版)
egrep:擴展文本過濾
fgrep:快速文本過濾
語法
語法:grep [option...] pattern-spec filename

參數
範本樣式=條件
-c 計算符合條件的行數。

[root@bogon ~]# grep -c "^$" /etc/init.d/sshd 
20
[root@bogon ~]#

-E使用擴展正則表達式。

[root@bogon ~]# grep "ro?t" /etc/passwd  “?”需要使用擴展正則才生效
[root@bogon ~]# grep -E "ro?t" /etc/passwd
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
[root@bogon ~]# grep "root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@bogon ~]# grep "ro+t" /etc/passwd    
[root@bogon ~]# grep -E "ro+t" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@bogon ~]# 

-i 模式匹配時忽略大小寫差異

[root@bogon tmp]# cat test.txt 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
ROOT adfg gadg adg
root 1242 13542
[root@bogon tmp]# grep "^root" test.txt 
root:x:0:0:root:/root:/bin/bash
root 1242 13542
[root@bogon tmp]# grep -i "^root" test.txt 
root:x:0:0:root:/root:/bin/bash
ROOT adfg gadg adg
root 1242 13542
[root@bogon tmp]# 

-v 反轉查找。顯示不匹配模式的行

[root@bogon tmp]# grep -v "^root" test.txt  
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
ROOT adfg gadg adg
[root@bogon tmp]# 

-w 只顯示全字符合的行。

[root@bogon tmp]# grep -w "root" test.txt     
root:x:0:0:root:/root:/bin/bash
root 1242 13542
[root@bogon tmp]#

-o 只輸出文件中匹配到的部分,不按行顯示

[root@bogon tmp]# grep -w "root" test.txt     
root:x:0:0:root:/root:/bin/bash
root 1242 13542
[root@bogon tmp]#

-n :打印行號【對匹配的行打印行號】

[root@bogon tmp]# grep -n "daemon" test.txt   
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@bogon tmp]#

-q 不顯示任何信息。靜默的,如果匹配成功,不將匹配的行輸出到標準輸出;否則即是不成功
-s 不顯示錯誤信息。常與-q連用
-a 不要忽略二進制數據。
-A<顯示列數> 除了顯示符合範本樣式的那一行之外,並顯示該行之後的內容。
-b 在顯示符合範本樣式的那一行之外,並顯示該行之前的內容。
-C<顯示列數>或-<顯示列數> 除了顯示符合範本樣式的那一列之外,並顯示該列之前後的內容。
-d<進行動作> 當指定要查找的是目錄而非文件時,必須使用這項參數,否則grep命令將回報信息並停止動作。
-e<範本樣式> 指定字符串作為查找文件內容的範本樣式。
-f<範本文件> 指定範本文件,其內容有一個或多個範本樣式,讓grep查找符合範本條件的文件內容,格式為每一列的範本樣式。
-F 將範本樣式視為固定字符串的列表。
-G 將範本樣式視為普通的表示法來使用。
-h 在顯示符合範本樣式的那一列之前,不標示該列所屬的文件名稱。
-H 在顯示符合範本樣式的那一列之前,標示該列的文件名稱。
-l 列出文件內容符合指定的範本樣式的文件名稱。
-L 列出文件內容不符合指定的範本樣式的文件名稱。
-R/-r 此參數的效果和指定“-d recurse”參數相同。
-x 只顯示全列符合的列。
-y 此參數效果跟“-i”相同。
-P 將模式解釋為Perl正則表達式

grep學習擴展
1、grep --color=auto :表示匹配到的內容用顏色標記出來,顏色默認紅色

Linux命令三劍客之grep常用參數詳解