linux 命令grep,linuxgrep

來源:互聯網
上載者:User

linux 命令grep,linuxgrep

linux 命令grep

  grep命令用來搜尋文本,或從給定的檔案中搜尋行內包含了給定字串或單詞的檔案。通常來說,grep顯示匹配的行。使用grep來搜尋包括一個或多個Regex匹配到的文本行,然後只顯示匹配到的行。

  grep命令的文法:

  grep  ‘word’  檔案名稱

  grep  ‘word’  檔案1  檔案2  檔案3

  grep  ‘字串1  字串2’  檔案名稱

  commad  |  grep  ‘ 某個東西 ’

  commad  選項1  |  grep  ‘ 資料 ’

  grep  --color  ‘資料’  檔案名稱

 

 

  使用grep來搜尋一個檔案

搜尋檔案

  搜尋 /etc/passwd檔案下的Linux使用者,輸入:

[root@centos-64-min ~]# grep Linux /etc/passwd

  輸出內容:

Linux:x:500:500::/home/Linux:/bin/bash

  可以使用grep去強制忽略大小寫。例如使用 -i 選項可以匹配linux  Linux  、LINUX和其他組合:

grep -i Linux /etc/passwd

 

遞迴使用grep

可以遞迴地使用grep進行搜尋。例如在檔案目錄下搜尋所有包含的字串"192.168.57.9"的檔案

[root@centos-64-min ~]# grep -r "192.168.57.9" /etc/  

或是

[root@centos-64-min ~]# grep -R "192.168.57.9" /etc/

輸出結果  

/etc/sysconfig/network-scripts/ifcfg-eth0:IPADDR=192.168.57.9

你會看到搜尋到192.168.57.9的結果每一行都首碼以找到匹配的檔案名稱。輸出之中包含的檔案名稱可以加-h選項來禁止輸出:

如:

[root@centos-64-min ~]# grep -hR "192.168.57.9" /etc/
IPADDR=192.168.57.9

或是

[root@centos-64-min ~]# grep -h -R "192.168.57.9" /etc/
IPADDR=192.168.57.9

使用grep去搜尋文本

當你搜尋Linux是,grep命令將會匹配Linux,linux123,Linux35和其他包含Linux的字串 ,你可以用-w選項強制只輸出那些僅僅包含那個整個單詞的行。

[root@centos-64-min ~]# grep -w linux /etc/passwd

使用grep命令搜尋兩個不同的單詞

egrep命令如下:

egrep  -w  ‘word1 | word2 ’ 、path/to/file

這裡使用到了Regex,因此使用的是egrep命令,即擴充的grep命令。

統計文本匹配的行數

grep命令可以通過加-c參數顯示每個檔案中匹配到的次數:

grep  -c  ‘word’  /path/to/file

傳遞-n選項可以輸出的航前加入匹配到的行的行號:

grep  -n  ‘root’  /etc/passwd

如:

[root@centos-64-min ~]# grep -n 'root' /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
11:operator:x:11:0:operator:/root:/sbin/nologin

反轉匹配

使用-v選項來輸出不包含匹配項的內容,輸出內容僅僅包含那些不含給定單詞的行,例如輸出所有不包含root的行

[root@centos-64-min ~]# grep -n 'root' /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
11:operator:x:11:0:operator:/root:/sbin/nologin
[root@centos-64-min ~]# grep -n "root" /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
11:operator:x:11:0:operator:/root:/sbin/nologin
[root@centos-64-min ~]# 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
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/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
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
Linux:x:500:500::/home/Linux:/bin/bash

管道與grep命令

grep常常與管道一起使用

如顯示磁碟裝置的名稱:

[root@centos-64-min ~]# dmesg | egrep '(s|h)d[a-z]'
NMI watchdog disabled (cpu0): hardware events not enabled
sd 2:0:0:0: [sda] 41943040 512-byte logical blocks: (21.4 GB/20.0 GiB)
sd 2:0:0:0: [sda] Write Protect is off
sd 2:0:0:0: [sda] Mode Sense: 61 00 00 00
sd 2:0:0:0: [sda] Cache data unavailable
sd 2:0:0:0: [sda] Assuming drive cache: write through
sd 2:0:0:0: [sda] Cache data unavailable
sd 2:0:0:0: [sda] Assuming drive cache: write through
sda: sda1 sda2
sd 2:0:0:0: [sda] Cache data unavailable
sd 2:0:0:0: [sda] Assuming drive cache: write through
sd 2:0:0:0: [sda] Attached SCSI disk
dracut: Scanning devices sda2 for LVM logical volumes vg_centos64min/lv_root vg_centos64min/lv_swap
EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts:
SELinux: initialized (dev sda1, type ext4), uses xattr

 

顯示CPU的型號:

[root@centos-64-min ~]# cat /proc/cpuinfo | grep -i "Model"
model : 42
model name : Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz
[root@centos-64-min ~]#

當然也可以不適用管道

[root@centos-64-min ~]# grep -i 'Model' /proc/cpuinfo
model : 42
model name : Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz
[root@centos-64-min ~]# grep 'Model' /proc/cpuinfo
[root@centos-64-min ~]# grep 'model' /proc/cpuinfo
model : 42
model name : Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz

僅僅顯示匹配到內容的檔案名稱字

grep -l  ‘main’  *.c

或者可以強制grep以彩色輸出:

grep --color vivek  /etc/passwd

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.