grep基本介紹

這篇文章 ,主要介紹grep的基本使用

grep (Global search REgular expression and Print out the line)),是一個文本過濾工具;

  1. 作用
    根據特定的模式,對文件逐行進行匹配檢查,打印匹配到的行
    模式:即過濾的條件,可以由變量、命令、雙引號字符等組成;

  2. 選項

    --color=auto:對匹配到的文本着色顯示,Centos7默認已經定義爲別名
    -v:           顯示不被模式所匹配到的行,即反選
    -i:           忽略大小寫
    -n:           顯示匹配的行號
    -c:           統計匹配的行數
    -o:           僅顯示匹配到的字符串,而不是整行,默認顯示整行
    -q:           靜默模式,不輸出任何信息
    -e:           實現多個選項之間的邏輯or關係
    -w:           匹配整個單詞
    -A #(數字):   同after,即把匹配到的行以及後#行顯示出來
    -B #:         同before,即把匹配到的行以及前#行顯示出來
    -C #:         把匹配到的行以及前後各#行都顯示出來
    -E:          相當於egrep,擴展正則表達式,默認grep僅支持標準正則表達式
    -F:           相當於fgrep,不支持正則表達式
    -f:           可以匹配兩個文件中的公共行
  3. 示例如下:
    • -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
  • -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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章