做爲linux中最爲誒經常使用的三大文本(awk,sed,grep),掌握好期用法仍是頗有必要的。linux
首先談一下grep經常使用的經常使用格式爲:grep [選項] [文本] [文件] 。正則表達式
grep家族一共有三個:grep,egrep,fgrep。api
經常使用選項:bash
-E:開啓擴展(Extend) 的正則表達式。ide
-i:忽略大小寫(ignoew case)。、ui
[zhanzhuang@alibabaCentos7 guideAutomation]$ grep -i "Root" /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin
-v:反過來(invert),只打印沒有匹配的,不匹配的不打印。spa
[zhanzhuang@alibabaCentos7 guideAutomation]$ grep -v "root" /etc/passwd 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
-n:顯示行號。code
[zhanzhuang@alibabaCentos7 guideAutomation]$ grep -n "root" /etc/passwd 1:root:x:0:0:root:/root:/bin/bash 10:operator:x:11:0:operator:/root:/sbin/nologin
-w:被匹配的文本只能是單詞,而不能是單詞中的某一部分,如文本中有liker,而我搜尋的只是like,就可使用-w選項來避免匹配liker。blog
[zhanzhuang@alibabaCentos7 guideAutomation]$ grep -w "root" /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin
-c:顯示總共有多少行被匹配到了,而不是顯示被匹配到的內容,注意若是同時使用-vc選項顯示有多少行沒有被匹配到。ci
[zhanzhuang@alibabaCentos7 guideAutomation]$ grep -c "root" /etc/passwd 2
-o:只顯示被模式匹配到的字符串。
[zhanzhuang@alibabaCentos7 guideAutomation]$ grep -o "root" /etc/passwd root root root root
--color:將匹配到的內容以顏色高亮顯示。
-A n:顯示匹配到的字符串所在的行及其後n行,A=after
[zhanzhuang@alibabaCentos7 guideAutomation]$ grep -A 2 "core id" /proc/cpuinfo core id : 0 cpu cores : 1 apicid : 0
-B n:顯示匹配到的字符串所在的行及其前n行,B=before
[zhanzhuang@alibabaCentos7 guideAutomation]$ grep -B 2 "core id" /proc/cpuinfo physical id : 0 siblings : 1 core id : 0
-C n:顯示匹配到的字符串所在的行及其先後各n行,C=context
[zhanzhuang@alibabaCentos7 guideAutomation]$ grep -C 2 "core id" /proc/cpuinfo physical id : 0 siblings : 1 core id : 0 cpu cores : 1 apicid : 0