複習
linux中grep家族總共有三個:grep,egrep,fgrep。
常用選項:
-e :開啟擴充套件(extend)的正規表示式。
-i :忽略大小寫(ignore case)
[root@centos8 ~]# grep -i "ip" /etc/sysconfig/network-scripts/ifcfg-enp0s3
ipv4_failure_fatal=no
ipv6init=yes
ipv6_autoconf=yes
ipv6_defroute=yes
ipv6_failure_fatal=no
ipv6_addr_gen_mode=stable-privacy
ipaddr=192.168.43.150
-v :反過來(invert),只列印沒有匹配的,而匹配的反而不列印。
[root@centos8 ~]# grep -v "ip" /etc/sysconfig/network-scripts/ifcfg-enp0s3
type=ethernet
proxy_method=none
browser_only=no
bootproto=none
defroute=yes
name=enp0s3
uuid=2ef994b5-508e-4818-8271-5aece710e376
device=enp0s3
onboot=yes
prefix=24
gateway=192.168.43.1
-n :顯示行號
[root@centos8 ~]# grep -n "ip" /etc/sysconfig/network-scripts/ifcfg-enp0s3
6:ipv4_failure_fatal=no
7:ipv6init=yes
8:ipv6_autoconf=yes
9:ipv6_defroute=yes
10:ipv6_failure_fatal=no
11:ipv6_addr_gen_mode=stable-privacy
16:ipaddr=192.168.43.150
-w :被匹配的文字只能是單詞,而不能是單詞中的某一部分,如文字中有bootproto,而我搜尋的只是boot,就可以使用-w選項來避免匹配bootproto
[root@centos8 ~]# grep -w "boot" /etc/sysconfig/network-scripts/ifcfg-enp0s3
-c :顯示總共有多少行被匹配到了,而不是顯示被匹配到的內容,注意如果同時使用-cv選項是顯示有多少行沒有被匹配到。
[root@centos8 ~]# grep -v "ip" /etc/sysconfig/network-scripts/ifcfg-enp0s3
type=ethernet
proxy_method=none
browser_only=no
bootproto=none
defroute=yes
name=enp0s3
uuid=2ef994b5-508e-4818-8271-5aece710e376
device=enp0s3
onboot=yes
prefix=24
gateway=192.168.43.1
[root@centos8 ~]# grep -c "ip" /etc/sysconfig/network-scripts/ifcfg-enp0s3
7[root@centos8 ~]# grep -cv "ip" /etc/sysconfig/network-scripts/ifcfg-enp0s3
11
-o :只顯示被模式匹配到的字串。
[root@centos8 ~]# grep -o "ip" /etc/sysconfig/network-scripts/ifcfg-enp0s3
ipip
ipip
ipip
ip
–color :將匹配到的內容以顏色高亮顯示。
-a n:顯示匹配到的字串所在的行及其後n行,after
[root@centos8 ~]# grep -a 2 "ip" /etc/sysconfig/network-scripts/ifcfg-enp0s3
ipv4_failure_fatal=no
ipv6init=yes
ipv6_autoconf=yes
ipv6_defroute=yes
ipv6_failure_fatal=no
ipv6_addr_gen_mode=stable-privacy
name=enp0s3
uuid=2ef994b5-508e-4818-8271-5aece710e376
--ipaddr=192.168.43.150
prefix=24
gateway=192.168.43.1
-b n:顯示匹配到的字串所在的行及其前n行,before
[root@centos8 ~]# grep -b 2 "ip" /etc/sysconfig/network-scripts/ifcfg-enp0s3
bootproto=none
defroute=yes
ipv4_failure_fatal=no
ipv6init=yes
ipv6_autoconf=yes
ipv6_defroute=yes
ipv6_failure_fatal=no
ipv6_addr_gen_mode=stable-privacy
--device=enp0s3
onboot=yes
ipaddr=192.168.43.150
-c n:顯示匹配到的字串所在的行及其前後各n行,context
[root@centos8 ~]# grep -c 2 "ip" /etc/sysconfig/network-scripts/ifcfg-enp0s3
bootproto=none
defroute=yes
ipv4_failure_fatal=no
ipv6init=yes
ipv6_autoconf=yes
ipv6_defroute=yes
ipv6_failure_fatal=no
ipv6_addr_gen_mode=stable-privacy
name=enp0s3
uuid=2ef994b5-508e-4818-8271-5aece710e376
device=enp0s3
onboot=yes
ipaddr=192.168.43.150
prefix=24
gateway=192.168.43.1
位置錨定
^:行首
katex parse error: undefined control sequence: \< at position 74: … \̲
2.egrep
egrep命令用於在檔案內查詢指定的字串。egrep執行效果與grep -e相似,使用的語法及引數可參照grep指令,與grep的不同點在於解讀字串的方法。egrep是用extended regular expression語法來解讀的,而grep則用basic regular expression 語法解讀,extended regular expression比basic regular expression的表達更規範。
用法:
[root@centos8 ~]# cd /etc/
[root@centos8 etc]# egrep "linux" redhat-release os-release services
redhat-release:centos linux release 8.1.1911 (core)
os-release:name="centos linux"
os-release:pretty_name="centos linux 8 (core)"
services:nbd 10809/tcp # linux network block device
找出/etc/fstab檔案中一位數或兩位數
相當於執行 grep 指令加上引數 -f,詳見grep命令說明。
linux fgrep命令用於查詢檔案裡符合條件的字串。
語法fgrep [範本樣式][檔案或目錄…]
linux的grep的用法
grep a after 錨定行的開始 如 grep 匹配所有以grep開頭的行。錨定行的結束 如 grep 匹配所有以grep結尾的行。匹配乙個非換行符的字元 如 gr.p 匹配gr後接乙個任意字元,然後是p。匹配零個或多個先前字元 如 grep 匹配所有乙個或多個空格後緊跟grep的行。一起用代...
linux系統grep命令用法詳解(二)
1.作用 linux系統中grep命令是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹 配的行列印出來。grep全稱是global regular expr ession print,表示全域性正規表示式版本,它的使用許可權是所有使用者。2.格式 grep options 3.主要引數 ...
linux中grep的用法
過濾多個關鍵字 grep e root mysql etc passwd root 0 0 root root bin bash operator 11 0 operator root sbin nologin mysql 500 500 home mysql sbin nologin 排除多個關鍵...