Linux三劍客命令常見用法之grep

2021-08-09 19:40:13 字數 2206 閱讀 4118

grep全稱是global regular expression print,是乙個能使用正規表示式文字過濾、搜尋工具,並把匹配的行列印出來,grep使用許可權是所有使用者。

一、基本格式

grep  [-vioqabce]  parttern  /dir/path/file

二、常見用法

# grep root /etc/passwd		查詢到有root的行並列印出來

# grep -v root /etc/passwd 查詢到沒有root的行並列印出來

# grep -i root /etc/passwd 查詢到有root的行並列印出來,忽略字母大小寫

# grep -o root /etc/passwd 查詢到有root本身並且列印出來

# grep -q root /etc/passwd 靜默模式,不列印出來

# grep -c root /etc/passwd 顯示出匹配到的列數

# grep -n root /etc/passwd 查詢到有root的行,列印出來並顯示行號

# cat /etc/passwd | grep -f /tmp/text.txt 指定規則檔案text.txt,並以此為規則從passwd中查詢

# grep -a root /etc/passwd 查詢到有root的行,並且與其後兩行列印出來

# grep -b root /etc/passwd 查詢到有root的行,並且與其前兩行列印出來

# grep -c root /etc/passwd 查詢到有root的行,並將其前兩行和後兩行列印出來

# cat /etc/passwd | grep -e  "root|ming"	查詢root或者ming的行並列印出來

三、規則表示式

1、字元匹配

.			匹配任意單個字元

[n] 匹配n字元(任意單個字元)

[^n] 匹配除n外的字元

[:alpha:] 匹配任意字元

[:upper:] 匹配任意大寫字母

[:lower:] 匹配任意小寫字母

[:digit:] 匹配任意數字

[:space:] 匹配所有空白字元

[:punct:] 匹配標點

[:alnum:] 匹配字元和數字

2、次數匹配

*			匹配前面的字元任意次

\? 前面的字元可有可無

\+ 匹配前面的字元至少一次

\ 匹配前面的字元n次

\ 匹配前面的字元n到m次

3、位置錨定

^			行首錨定,位於最左側

$ 行尾錨定,位於最右側

\< 詞首錨定

\> 詞尾錨定

四、幾個練習

1、如果使用者root存在,就顯示其預設的shell程式

# id root && grep "^root\>" | cut -d: -f7

2、找出/etc/passwd中的兩位數或三位數

# grep "\<[0-9]\\>" /etc/passwd

3、找出/etc/rd.d/rc.sysinit檔案中至少以乙個空白字元開頭,且後面存在非空白字元的行

# grep "^[[:space:]]\+[^[:space:]]" /etc/rd.d/rc.sysinit

4、找出netstat -tan命令中 以listen後跟0個、1個以及多個空白字元結尾的行

# netstat -tan | grep "listen[[:space:]]*$"

5、找出使用者名稱和bash名相同的行

# grep "\(^[[alnum]]\+\>\).*\1$"

6、找出root、centos和ming使用者的行的使用者名稱uid和shell

# grep -e "^(root|centos|ming)\>" /etc/passwd | cut -d: -f1,3,7

以上是本人記錄一些淺顯的用法,如有錯誤,請指正。

Linux命令三劍客

grep的簡單使用 grep的主要作用 文字搜尋工具,根據使用者指定的 模式 對目標文字逐行進行匹配檢查 列印匹配到的行 grep的工作模式 由正規表示式字元及文字字元所編寫的過濾條件 grep的用法 grep options pattern file options v 顯示不被pattern匹配...

linux命令三劍客grep sed awk

grep cinvabc word filename c 匹配的行數,輸出行數 grep c install create.log2.i 匹配不區分大小寫,輸出所以內容 grep i dddd test3.n 輸出所有並顯示行數 4.v 取反,輸出所有沒有 install 的行 5.r 查乙個目錄下...

linux 三劍客之 grep

grep 是 linux系統中最重要的命令之一 其功能是從文字或者管道資料中篩選匹配的行及資料 如果配置正規表示式技術一起使用,則其功能更強大,它是linux運維人員必須要掌握的命令之一 usage grep option pattern file 用法 grep 引數 要搜尋的內容 檔案 eg r...