學習 Linux grep用法

2021-07-14 21:16:16 字數 3168 閱讀 4261

grep (global search regular expression(re) and print out the line,全面搜尋正規表示式並把行列印出來)

[root@www ~]# grep [-acinv] [--color=auto] '搜尋字串' filename

選項與引數:

-a :將 binary 檔案以 text 檔案的方式搜尋資料

-c :計算找到 '搜尋字串' 的次數

-i :忽略大小寫的不同,所以大小寫視為相同

-n :順便輸出行號

-v :反向選擇,亦即顯示出沒有 '搜尋字串' 內容的那一行!

將/etc/passwd,有出現 root 的行取出來

# grep root /etc/passwd

root:x:0

:0:root

:/root

:/bin/bash

operator:

x:11:0

:operator

:/root

:/sbin/nologin

或# cat /etc/passwd | grep root

root:x:0

:0:root

:/root

:/bin/bash

operator:

x:11:0

:operator

:/root

:/sbin/nologin

將/etc/passwd,有出現 root 的行取出來,同時顯示這些行在/etc/passwd的行號

# grep -n root /etc/passwd

1:root:x:

0:0:root

:/root

:/bin/bash

30:operator:x:

11:0:operator

:/root

:/sbin/nologin

在關鍵字的顯示方面,grep 可以使用 –color=auto 來將關鍵字部分使用顏色顯示。 這可是個很不錯的功能啊!但是如果每次使用 grep 都得要自行加上 –color=auto 又顯的很麻煩~ 此時那個好用的 alias 就得來處理一下啦!你可以在 ~/.bashrc 內加上這行:『alias grep=』grep –color=auto』』再以『 source ~/.bashrc 』來立即生效即可喔! 這樣每次執行 grep 他都會自動幫你加上顏色顯示啦

將/etc/passwd,將沒有出現 root 的行取出來

# grep -v root /etc/passwd

root:x:0

:0:root

:/root

:/bin/bash

operator:

x:11:0

:operator

:/root

:/sbin/nologin

將/etc/passwd,將沒有出現 root 和nologin的行取出來

# grep -v root /etc/passwd | grep -v nologin

root:x:0

:0:root

:/root

:/bin/bash

operator:

x:11:0

:operator

:/root

:/sbin/nologin

用 dmesg 列出核心資訊,再以 grep 找出內含 eth 那行,要將捉到的關鍵字顯色,且加上行號來表示:

[root@www ~]# dmesg | grep -n --color=auto 'eth'

247:eth0

:realtek

rtl8139 at 0xee846000, 00:90

:cc:a6:34

:84, irq

10248

:eth0

:identified

8139 chip type 'rtl-8139c'

294:eth0

: link up, 100mbps, full-duplex, lpa 0xc5e1

305:eth0

: no ipv6 routers present

# 你會發現除了 eth 會有特殊顏色來表示之外,最前面還有行號喔!

用 dmesg 列出核心資訊,再以 grep 找出內含 eth 那行,在關鍵字所在行的前兩行與後三行也一起捉出來顯示

[root@www ~]# dmesg | grep -n -a3 -b2 --color=auto 'eth'

245-pci: setting irq 10 as level-triggered

246-acpi: pci interrupt 0000:00:0e

.0[a] -> link [lnkb] ...

247:eth0: realtek rtl8139 at 0xee846000, 00:90:cc:a6:34:84, irq 10

248:eth0: identified 8139 chip type 'rtl-8139c'

249-input: pc speaker as /class/input/input2

250-acpi: pci interrupt 0000:00:01.4[b] -> link [lnkb] ...

251-hdb: atapi 48x ***-rom ***-r-ram cd-r/rw drive, 2048kb cache, udma(66)

# 如上所示,你會發現關鍵字 247 所在的前兩行及 248 後三行也都被顯示出來!

# 這樣可以讓你將關鍵字前後資料捉出來進行分析啦!

根據檔案內容遞迴查詢目錄

# grep 『energywise』 *           #在當前目錄搜尋帶'energywise'行的檔案

# grep -r 『energywise』 * #在當前目錄及其子目錄下搜尋'energywise'行的檔案

# grep -l -r 『energywise』 * #在當前目錄及其子目錄下搜尋'energywise'行的檔案,但是不顯示匹配的行,只顯示匹配的檔案

Linux grep命令用法

語法 grep options pattern file.grep用以在file內文中比對相對應的部分,或是當沒有指定檔案時,由標準輸入中去比對。在預設的情況下,grep會將符合樣式的那一行列出。此外,還有兩個程式是grep的變化型,egrep及fgrep。其中egrep就等同於grep e fgr...

linux grep用法大全

原文 在unix中經常會用到grep去選取所需要的資訊,用好grep有時可以到達意想不到的效果。grep g globally search for a re regular expression r r and p print the results.1 引數 i 忽略大小寫 c 列印匹配的行數 ...

Linux grep命令用法

一直以為grep只能進行單個檔案的篩選,今天才發現,它可以進行多個檔案的篩選。這個功能真是太強大了。還是記錄一下吧。假設我要找乙個start kernel函式,但我不知道此函式在哪個檔案裡,於是可以用如下命令 grep wri start kernel 以下是一些其它的用法,也記錄一下,算是鞏固吧 ...