這篇文章 ,主要介紹grep的基本使用
grep (Global search REgular expression and Print out the line)),是一個文本過濾工具;
-
作用
根據特定的模式,對文件逐行進行匹配檢查,打印匹配到的行
模式:即過濾的條件,可以由變量、命令、雙引號字符等組成; -
選項
--color=auto:對匹配到的文本着色顯示,Centos7默認已經定義爲別名 -v: 顯示不被模式所匹配到的行,即反選 -i: 忽略大小寫 -n: 顯示匹配的行號 -c: 統計匹配的行數 -o: 僅顯示匹配到的字符串,而不是整行,默認顯示整行 -q: 靜默模式,不輸出任何信息 -e: 實現多個選項之間的邏輯or關係 -w: 匹配整個單詞 -A #(數字): 同after,即把匹配到的行以及後#行顯示出來 -B #: 同before,即把匹配到的行以及前#行顯示出來 -C #: 把匹配到的行以及前後各#行都顯示出來 -E: 相當於egrep,擴展正則表達式,默認grep僅支持標準正則表達式 -F: 相當於fgrep,不支持正則表達式 -f: 可以匹配兩個文件中的公共行
- 示例如下:
- -v
環境準備 [root@CentOS6 data ]#cat test aaa bbb ccc ddd xin xin yuanhohl [root@CentOS6 data ]#grep 'a' test aaa yuanhohl [root@CentOS6 data ]#grep -v 'a' test bbb ccc ddd xin xin
- -v
-
-n
[root@CentOS6 var ]#grep -n "UUID" /etc/fstab 9:UUID=91054f47-59f0-4c0f-9136-d1a824233866 / ext4 defaults 1 1 10:UUID=38fafd9a-a99a-48e2-8112-2016e04db828 /boot ext4 defaults 1 2 11:UUID=ec1e0b78-b7c4-44b4-90f7-63bd23ed129e /data ext4 defaults 1 2 12:UUID=a8fd9779-45d3-449b-aa16-12532df94d4b swap swap defaults 0 0
-
-c
[root@CentOS6 var ]#grep -c "UUID" /etc/fstab 4
-
-o
[root@CentOS6 var ]#grep -o "UUID" /etc/fstab UUID UUID UUID UUID
-
-q
[root@CentOS6 var ]#grep -q "UUID" /etc/fstab [root@CentOS6 var ]#echo $? 0
- -A 、-B、-C
[root@CentOS6 var ]#grep -A 2 "UUID" /etc/fstab
UUID=91054f47-59f0-4c0f-9136-d1a824233866 / ext4 defaults 1 1
UUID=38fafd9a-a99a-48e2-8112-2016e04db828 /boot ext4 defaults 1 2
UUID=ec1e0b78-b7c4-44b4-90f7-63bd23ed129e /data ext4 defaults 1 2
UUID=a8fd9779-45d3-449b-aa16-12532df94d4b swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
[root@CentOS6 var ]#
[root@CentOS6 var ]#grep -B 2 "UUID" /etc/fstab
See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=91054f47-59f0-4c0f-9136-d1a824233866 / ext4 defaults 1 1
UUID=38fafd9a-a99a-48e2-8112-2016e04db828 /boot ext4 defaults 1 2
UUID=ec1e0b78-b7c4-44b4-90f7-63bd23ed129e /data ext4 defaults 1 2
UUID=a8fd9779-45d3-449b-aa16-12532df94d4b swap swap defaults 0 0
[root@CentOS6 var ]#grep -C 2 "UUID" /etc/fstab
See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=91054f47-59f0-4c0f-9136-d1a824233866 / ext4 defaults 1 1
UUID=38fafd9a-a99a-48e2-8112-2016e04db828 /boot ext4 defaults 1 2
UUID=ec1e0b78-b7c4-44b4-90f7-63bd23ed129e /data ext4 defaults 1 2
UUID=a8fd9779-45d3-449b-aa16-12532df94d4b swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
[root@CentOS6 var ]#
- -e
[root@CentOS6 var ]#grep -e root -e nologin /etc/passwd ##注意每個條件之前都要加-e
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
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rtkit:x:499:499:RealtimeKit:/proc:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
- -w
環境準備:
##默認會將包含root的字符串全部打印;
[root@CentOS6 var ]#useradd rooter
[root@CentOS6 var ]#grep "root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
rooter:x:501:501::/home/rooter:/bin/bash
使用-w,僅答應root的行
[root@CentOS6 var ]#grep -w "root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin