grep sed awk

2020-08-13 00:11:20

grep
grep 是linux 中最常用的「文字處理工具之一」 與sed awk 合稱爲linux中的三劍客!

grep 就像你在windows中開啓txt檔案,使用快捷鍵「Ctrl+F」 在文字中查詢某個字串一樣,可以把grep 理解爲字元查詢工具

grep 的全程爲Global search Regular Expression and Print out the line 爲全域性搜尋的意思

-i:在搜尋的時候忽略大小寫
[root@localhost ~]# cat /etc/passwd|grep -i 「SSH」
sshd❌74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

-n: 顯示結果所在行號
[root@localhost ~]# cat /etc/passwd|grep -ni 「SSH」
17:sshd❌74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

-c:統計匹配到的行數
[root@localhost ~]# cat /etc/passwd|grep 「root」
root❌0:0:root:/root:/bin/bash
operator❌11:0:operator:/root:/sbin/nologin
[root@localhost ~]# cat /etc/passwd|grep -c 「root」
2

-w:匹配單個單詞,如果字串中包含這個單詞,則不匹配
[root@localhost ~]# cat /etc/passwd.bak|grep -w 「root」
root❌0:0:root:/root:/bin/bash
rootroo❌0:0:root:/root:/bin/bash #不會顯示rootroo的

-e:實現多個選項的匹配。邏輯或or的關係
==egrep
==grep -E
[root@localhost ~]# cat /etc/passwd.bak|egrep -w 「root|sshd」
root❌0:0:root:/root:/bin/bash
rootroo❌0:0:root:/root:/bin/bash
operator❌11:0:operator:/root:/sbin/nologin
sshd❌74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

-q: 靜默模式,不輸出任何資訊 判斷:echo $?
[root@localhost ~]# cat /etc/passwd.bak|grep -q 「root」

-v:輸出不帶關鍵字的行(反向查詢,反向匹配)
[root@localhost ~]# cat /etc/passwd.bak|grep -v 「root」
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
halt❌7:0:halt:/sbin:/sbin/halt
mail❌8:12:mail:/var/spool/mail:/sbin/nologin
games❌12