首頁 >運維 >linux運維 >全面詳解linux下grep指令的用法

全面詳解linux下grep指令的用法

齐天大圣
齐天大圣原創
2020-09-16 16:12:303474瀏覽

學linux系統,grep這個指令是必須要掌握的。 grep指令是用來尋找檔案或標準輸出中符合的行,它的強大之處在於它支援正規表示式。在日常工作中,grep絕對是用的最多的指令之一。

註:本文只介紹grep的用法,關於正規表示式不做介紹。

下面來看看它的一些常見選項以及意義:

選項

  • #-i    搜尋時候忽略大小寫   

  • -n    列出所有的符合行,顯示行號   

  • -v    反向選擇   

  • ## -c    只輸出配對行的數量   
  • -l    只輸出符合相符的檔案名,並未列出特定的符合行   
  • ## -h    查詢多重檔案時不顯示檔案名稱   
  • -r    遞迴搜尋   
  • -q    禁止輸出任何結果,已退出狀態表示搜尋結果,已退出狀態表示搜尋結果是否成功   

--color=auto    將找到的關鍵字加上顏色顯示   

-E, --extended-regexp    PATTERN 是一個可擴充的正規表示式(縮寫為ERE)    

-B, --before-context=NUM    列印以文字起始的NUM 行   

#-A, --after-context=NUM    列印以文字結尾的NUM 行   

###下面來介紹grep的一些用法:######我們知道php .ini有一個時區的配置,具體的不太清楚,只知道timezone,現在我們想找到該配置信息,就可以使用grep來查找###
# 加上-i选项,忽略大小写
# grep -i timezone /usr/local/php/etc/php.ini 
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = PRC
###grep支持在多個文件中查找###
# 这里我们加上-n选项,输出文件的行号
# grep -in stdio itoa.c quicksort.c 
itoa.c:2:#include <stdio.h>
quicksort.c:1:#include <stdio.h>
###反向選擇的-v使用,當我運行了一個程序,想要看看這個程序是否還存在進程中,可以使用下面的方法###
# ps aux | grep curl.php 
root     14374 98.3  1.2 277844 12396 pts/0    R+   07:54   1:07 php curl.php
root     14404  0.0  0.0 112664   984 pts/2    R+   07:55   0:00 grep --color=auto curl.php
###這裡就有個問題,我們需要使用-v來過濾掉grep本身的程序###
# ps aux | grep curl.php | grep -v grep 
root     14374 98.5  1.2 277844 12396 pts/0    R+   07:54   2:36 php curl.php
###我們想要統計last指令中含root的行數,那麼這裡就需要用到-c選項了。 ###
# last | grep -c root
353
###經常有這種需求,需要批量替換文件中的某文本,那麼怎麼知道這些文本在哪幾個文件中呢。 grep可以做到,配合-l選項###
# find . -type f -exec grep -l define {} \;
./find.c
./itoa2.c
./wc.c
./test.c
./wordcnt.c
./longestline.c
./cal.c
./sortline2.c
./sortline.c
./found.c
./atof.c
###下面再看一個例子,該例子用到了-E擴展正則,我們想要過濾掉php.ini檔案中的註解行以及空白行###
grep -vE &#39;^;|^$&#39; /usr/local/php/etc/php.ini
###還有一個常用的選項-r,它可以用來遞歸查找當前目錄下所有文件,以及子目錄文件。下面,我們想查看網站目錄下還有footer的檔案有哪些,可以用下面的指令來找###
grep -rn footer ./

以上是全面詳解linux下grep指令的用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn