grep 是一個強大的搜索過濾工具,參數有不少,可使用不一樣的參數實現不一樣的功能。正則表達式
grep -c 'word' file
統計行數bash
[root@localhost tmp]# grep -c 'nologin' 1.txt 15
grep -n 'word' file
列出過濾內容並顯示行號ssh
[root@localhost tmp]# grep -n 'nologin' 1.txt 2:bin:x:1:1:bin:/bin:/sbin/nologin 3:daemon:x:2:2:daemon:/sbin:/sbin/nologin 4:adm:x:3:4:adm:/var/adm:/sbin/nologin 5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin 10:operator:x:11:0:operator:/root:/sbin/nologin 11:games:x:12:100:games:/usr/games:/sbin/nologin 12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin 13:nobody:x:99:99:Nobody:/:/sbin/nologin 14:dbus:x:81:81:System message bus:/:/sbin/nologin 15:polkitd:x:999:998:User for polkitd:/:/sbin/nologin 16:avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin 17:avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin 18:postfix:x:89:89::/var/spool/postfix:/sbin/nologin 19:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
grep -in 'word' file
列出打印內容,並不區分大小寫工具
[root@localhost tmp]# grep -in 'nologin' 1.txt 2:bin:x:1:1:bin:/bin:/sbin/nologin 3:daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN 大寫內容也能夠過濾出來 4:adm:x:3:4:adm:/var/adm:/sbin/nologin 5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin 10:operator:x:11:0:operator:/root:/sbin/nologin 11:games:x:12:100:games:/usr/games:/sbin/nologin 12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin 13:nobody:x:99:99:Nobody:/:/sbin/nologin 14:dbus:x:81:81:System message bus:/:/sbin/nologin 15:polkitd:x:999:998:User for polkitd:/:/sbin/nologin 16:avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin 17:avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin 18:postfix:x:89:89::/var/spool/postfix:/sbin/nologin 19:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
grep -v 'word' file
過濾出全部不包含關鍵詞的行post
[root@localhost tmp]# grep -v 'nologin' 1.txt root:x:0:0:root:/root:/bin/bash daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt lic:x:1000:1000::/home/lic:/bin/bash
grep -r 'word' dir
過濾出目錄及子目錄(子子目錄)下的文件中含有關鍵詞的行code
[root@localhost /]# grep -inr 'nologin' /tmp /tmp/2.txt:2:bin:x:1:1:bin:/bin:/sbin/nologin /tmp/2.txt:3:daemon:x:2:2:daemon:/sbin:/sbin/nologin /tmp/2.txt:4:adm:x:3:4:adm:/var/adm:/sbin/nologin /tmp/1.txt:2:bin:x:1:1:bin:/bin:/sbin/nologin /tmp/1.txt:3:daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN /tmp/1.txt:4:adm:x:3:4:adm:/var/adm:/sbin/nologin /tmp/1.txt:5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin /tmp/1.txt:9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin /tmp/1.txt:10:operator:x:11:0:operator:/root:/sbin/nologin /tmp/1.txt:11:games:x:12:100:games:/usr/games:/sbin/nologin /tmp/1.txt:12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin /tmp/1.txt:13:nobody:x:99:99:Nobody:/:/sbin/nologin /tmp/1.txt:14:dbus:x:81:81:System message bus:/:/sbin/nologin /tmp/1.txt:15:polkitd:x:999:998:User for polkitd:/:/sbin/nologin /tmp/1.txt:16:avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin /tmp/1.txt:17:avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin /tmp/1.txt:18:postfix:x:89:89::/var/spool/postfix:/sbin/nologin /tmp/1.txt:19:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
grep -A3 'word' filename
除了把含有關鍵詞的行列出來還把該行的下面3行也列出來ip
[root@localhost /]# grep -nA3 'nologin' /tmp/1.txt 2:bin:x:1:1:bin:/bin:/sbin/nologin 3-daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN 4:adm:x:3:4:adm:/var/adm:/sbin/nologin 5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 6-sync:x:5:0:sync:/sbin:/bin/sync 7-shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown 8-halt:x:7:0:halt:/sbin:/sbin/halt 9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin 10:operator:x:11:0:operator:/root:/sbin/nologin 11:games:x:12:100:games:/usr/games:/sbin/nologin 12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin 13:nobody:x:99:99:Nobody:/:/sbin/nologin 14:dbus:x:81:81:System message bus:/:/sbin/nologin 15:polkitd:x:999:998:User for polkitd:/:/sbin/nologin 16:avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin 17:avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin 18:postfix:x:89:89::/var/spool/postfix:/sbin/nologin 19:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin 20-lic:x:1000:1000::/home/lic:/bin/bash
grep -B3 'word' filename
除了把含有關鍵詞的行列出來還把該行的下面3行也列出來ci
[root@localhost tmp]# grep -nB3 'nologin' 1.txt 1-root:x:0:0:root:/root:/bin/bash 2:bin:x:1:1:bin:/bin:/sbin/nologin 3-daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN 4:adm:x:3:4:adm:/var/adm:/sbin/nologin 5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 6-sync:x:5:0:sync:/sbin:/bin/sync 7-shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown 8-halt:x:7:0:halt:/sbin:/sbin/halt 9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin 10:operator:x:11:0:operator:/root:/sbin/nologin 11:games:x:12:100:games:/usr/games:/sbin/nologin 12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin 13:nobody:x:99:99:Nobody:/:/sbin/nologin 14:dbus:x:81:81:System message bus:/:/sbin/nologin 15:polkitd:x:999:998:User for polkitd:/:/sbin/nologin 16:avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin 17:avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin 18:postfix:x:89:89::/var/spool/postfix:/sbin/nologin 19:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
grep -C2 'word' filename
除了把含有關鍵詞的行列出來還把該行的上面下面2行也列出來字符串
[root@localhost tmp]# grep -nC2 'nologin' 1.txt 1-root:x:0:0:root:/root:/bin/bash 2:bin:x:1:1:bin:/bin:/sbin/nologin 3-daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN 4:adm:x:3:4:adm:/var/adm:/sbin/nologin 5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 6-sync:x:5:0:sync:/sbin:/bin/sync 7-shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown 8-halt:x:7:0:halt:/sbin:/sbin/halt 9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin 10:operator:x:11:0:operator:/root:/sbin/nologin 11:games:x:12:100:games:/usr/games:/sbin/nologin 12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin 13:nobody:x:99:99:Nobody:/:/sbin/nologin 14:dbus:x:81:81:System message bus:/:/sbin/nologin 15:polkitd:x:999:998:User for polkitd:/:/sbin/nologin 16:avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin 17:avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin 18:postfix:x:89:89::/var/spool/postfix:/sbin/nologin 19:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin 20-lic:x:1000:1000::/home/lic:/bin/bash
grep -m2 'word' filename
列出2條含有關鍵詞的行it
[root@localhost tmp]# grep -nm2 'nologin' 1.txt 2:bin:x:1:1:bin:/bin:/sbin/nologin 4:adm:x:3:4:adm:/var/adm:/sbin/nologin
grep '[0-9]' filename 表示過濾出該文件下全部帶數字的行
grep -v '[0-9]' filename表示過濾出該文件下全部不帶數字的行
^word 表示已word開頭的行
[root@localhost tmp]# grep -n '^#' 1.txt 3:#daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN 4:#adm:x:3:4:adm:/var/adm:/sbin/nologin
grep '^[^0-9]' filename ^在[]內表示以非數字開始的行
grep -v '^[^0-9]' filename 表示以數字開始的行
grep 'r.o' filename .表示一個任意的字符
grep 'r*o' filename 星號表示任意個數的任意字符
grep 'o{2} filename 表示o出現2次也就是oo 的行=grep -E 'o{2}' filename =egrep 'o{2}' filename
egrep 'o+o' filename =grep 'o+o' filename +表示出現一次以上左邊字符的行
egrep 'o?t' filename 中的?表示左邊字符出現過n次的行,n爲任意值
egrep 'root|nologin' filename 中的|表示匹配root或者nolongin的行
egrep '(oo){2}' filename 表示oo出現兩次=oooo 的行