溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)grep命令是什么

發(fā)布時(shí)間:2022-01-27 11:57:49 來源:億速云 閱讀:169 作者:柒染 欄目:開發(fā)技術(shù)

這篇文章的內(nèi)容主要圍繞Linux系統(tǒng)grep命令是什么進(jìn)行講述,文章內(nèi)容清晰易懂,條理清晰,非常適合新手學(xué)習(xí),值得大家去閱讀。感興趣的朋友可以跟隨小編一起閱讀吧。希望大家通過這篇文章有所收獲!

Linux grep命令用于查找文件里符合條件的字符串;也可以用于查找內(nèi)容包含指定的范本樣式的文件。它能使用正則表達(dá)式搜索,用于在文件中搜索指定的字符串模式,列出含有匹配模式子符串的文件名,并輸出含有該字符串的文本行。

語法格式

grep [參數(shù)]

常用參數(shù):

-i搜索時(shí),忽略大小寫
-c只輸出匹配行的數(shù)量
-l只列出符合匹配的文件名,不列出具體的匹配行
-n列出所有的匹配行,顯示行號
-h查詢多文件時(shí)不顯示文件名
-s不顯示不存在、沒有匹配文本的錯誤信息
-v顯示不包含匹配文本的所有行
-w匹配整詞
-x匹配整行
-r遞歸搜索
-q禁止輸出任何結(jié)果,已退出狀態(tài)表示搜索是否成功
-b打印匹配行距文件頭部的偏移量,以字節(jié)為單位
-o與-b結(jié)合使用,打印匹配的詞據(jù)文件頭部的偏移量,以字節(jié)為單位

參考實(shí)例

支持多文件查詢并支持使用通配符:

 [root@linux265 ~]# grep zwx file_* /etc/hosts
 file_1:zwx
 file_1:zwx
 file_1:zwxddkjflkdjfdlkfjlsdkj
 file_2:zwx
 file_4:dkfjlzwxejfkje
 file_4:zwx djfkdjf
 file_4:zwxedkfgj

輸出匹配字符串行的數(shù)量:

 [root@linux265 ~]$ grep -c zwx file_*
  file_1:2
  file_2:1
  file_3:0

列出所有的匹配行,并顯示行號:

 [root@linux265 ~]# grep -n zwx file_*
  file_1:1:zwx
  file_1:4:zwx
  file_1:10:zwxddkjflkdjfdlkfjlsdkj
  file_2:2:zwx
  file_4:3:dkfjlzwxejfkje
  file_4:4:zwx djfkdjf
  file_4:5:zwxedkfgj

顯示不包含模式的所有行:

 [root@linux265 ~]# grep -vc zwx file_*
  file_1:7                                
  file_2:4
  file_3:5
  file_4:2

不再顯示文件名:

 [root@linux265 ~]# grep -h zwx file_*
  zwx
  zwx
  zwxddkjflkdjfdlkfjlsdkj
  zwx
  dkfjlzwxejfkje
  zwx djfkdjf
  zwxedkfgj

只列出符合匹配的文件名,不列出具體匹配的行:

 [root@linux265 ~]# grep -l zwx file_*
  file_1
  file_2
  file_4

不顯示不存在或無匹配的文本信息:

 [root@linux265 ~]# grep  -s zwx file1 file_1
  file_1:zwx      
  file_1:zwx
  file_1:zwxddkjflkdjfdlkfjlsdkj
  [root@linux265 ~]# grep zwx file1 file_1
  grep: file1: No such file or directory  
  file_1:zwx
  file_1:zwx
  file_1:zwxddkjflkdjfdlkfjlsdkj

遞歸搜索,不僅搜索當(dāng)前目錄,還搜索子目錄:

 [root@linux265 ~]# grep -r zwx file_2 *
  file_2:zwx
  anaconda-ks.cfg:user --name=zwx --gecos="zwx"
  file_1:zwx
  file_1:zwx
  file_1:zwxddkjflkdjfdlkfjlsdkj
  file_2:zwx
  file_4:dkfjlzwxejfkje
  file_4:zwx djfkdjf
  file_4:zwxedkfgj
  initial-setup-ks.cfg:user --name=zwx --gecos="zwx"

匹配整詞,以字面意思去解釋他,相當(dāng)于精確匹配:

 [root@linux265 ~]# grep zw* file_1
  zwx                      
  zwx
  zdkfjeld
  zw
  ze
  zwxddkjflkdjfdlkfjlsdkj
  [root@linux265 ~]# grep -w zw* file_1
  zw

匹配整行,文件中的整行與模式匹配時(shí),才打印出來:

 [root@linux265 ~]# grep -x zwx file_*
  file_1:zwx
  file_1:zwx
  file_2:zwx

不輸出任何結(jié)果,已退出狀態(tài)表示結(jié)果:

  [root@linux265 ~]# grep -q zwx file_1
  [root@linux265 ~]# echo $?
  0              
  [root@linux265 ~]# grep -q zwx file_5
  [root@linux265 ~]# echo $?
  1              
  [root@linux265 ~]# grep -q zwx file5
  grep: file5: No such file or directory
  [root@linux265 ~]# echo $?
  2

查找一個文件中的空行和非空行:

 [root@linux265 ~]# grep -c ^$ file_1
  4              
  [root@linux265 ~]# grep -c ^[^$] file_1
  15

匹配任意或重復(fù)字符用“.”或“*”符號來實(shí)現(xiàn):

 [root@linux265 ~]# grep ^z.x file_1
  zwx
  zwx
  zwxddkjflkdjfdlkfjlsdkj
 [root@linux265 ~]# grep ^z* file_6
  zwx
  dfkjd
                       
  zzdfjkd
  zz dfdww
  haha

感謝你的閱讀,相信你對“Linux系統(tǒng)grep命令是什么”這一問題有一定的了解,快去動手實(shí)踐吧,如果想了解更多相關(guān)知識點(diǎn),可以關(guān)注億速云網(wǎng)站!小編會繼續(xù)為大家?guī)砀玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI