1. 程式人生 > >Linux egrep在檔案內查詢指定的字串命令詳解

Linux egrep在檔案內查詢指定的字串命令詳解

功能說明:在檔案內查詢指定的字串。egrep執行效果如grep -E,使用的語法及引數可參照grep指令,與grep不同點在於解讀字串的方法,egrep是用extended regular expression語法來解讀,而grep則用basic regular expression語法,extended regular expression比basic regular expression有更完整的表達規範。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

grep、fgrep 和 egrep 命令 比較

grep的一般格式為:

    grep [選項] 基本正則表示式 [檔案]

  在grep命令中輸入字串引數時,最好將其用雙引號括起來。例如:“my strings”,這樣做有兩個原因,一個是防止被誤會是shell命令,一個是可以用來查詢多個單片語成的字串,就如這個例子中的“my strings”。
  在呼叫變數的時候,也應該使用雙引號,例如:grep “$MYNAME”。
  在呼叫模式匹配時,應該使用單引號。

  grep命令中的常用選項:
    -c 只輸出匹配的行數。
    -i 不區分大小寫。
    -h 查詢多個檔案時不顯示檔名。
    -l 查詢檔案時只顯示匹配字元所在的檔名。
    -n 顯示匹配的行及其行號。
    -s 不顯示不存在或不匹配文字的錯誤資訊。
    -v 顯示不匹配的所有行。
    -E 允許使用擴充套件模式匹配。例如:grep -E '00|04' findfile,表示在findfile檔案中查詢包含00或04的行。

  grep允許使用國際字元模式匹配。類名及其等價的正則表示式:
    類 正則表示式
    [[:upper:]] [A-Z]
    [[:lower:]] [a-z]
    [[:digit:]] [0-9]
    [[:alnum:]] [0-9a-zA-Z]
    [[:space:]] 空格或tab鍵
    [[:alpha:]] [a-zA-Z]
grep、fgrep和egrep命令
  這組命令以指定模式搜尋檔案,並通知使用者在什麼檔案中搜索到與指定的模式匹配的字串,並打印出所有包含該字串的文字行,在該文字行的最前面是該行所在的檔名。grep命令一次只能搜尋一個指定的模式;egrep命令檢索擴充套件的正則表示式(包括表示式組和可選項);fgrep命令檢索固定字串,它不識別正則表示式,是快速搜尋命令。
  這組命令在搜尋與定位檔案中特定的主題方面非常有用。要搜尋的模式可以被認為是一些關鍵詞,您可以用它們來搜尋檔案中包含的這些關鍵詞。編寫程式時,可以用它來尋找某一個函式,或是相關的片語。grep命令的搜尋功能比fgrep強大,因為grep命令的搜尋模式可以是正則表示式,而fgrep卻不能。有關正則表示式請參見shell一章。
  該組命令中的每一個命令都有一組選項,利用這些選項可以改變其輸出方式。例如,可以在搜尋到的文字行上加入行號,或者只輸出文本行的行號,或者輸出所有與搜尋模式不匹配的文字行,或只簡單地輸出已搜尋到指定模式的檔名,並且可以指定在查詢模式時忽略大小寫。
  這組命令在指定的輸入檔案中查詢與模式匹配的行。如果沒有指定檔案,則從標準輸入中讀取。正常情況下,每個匹配的行被顯示到標準輸出。如果要查詢的檔案是多個,則在每一行輸出之前加上檔名。
  語法:
  grep [選項] [查詢模式] [檔名1,檔名2,……]
  egrep [選項] [查詢模式] [檔名1,檔名2,……]
  fgrep [選項] [查詢模式] [檔名1,檔名2,……]
  這組命令各選項的含義為:
  - E 每個模式作為一個擴充套件的正則表示式對待。
  - F 每個模式作為一組固定字串對待(以新行分隔),而不作為正則表示式。
  - b在輸出的每一行前顯示包含匹配字串的行在檔案中的位元組偏移量。
  - c 只顯示匹配行的數量。
  - i 比較時不區分大小寫。
  - h 在查詢多個檔案時,指示grep不要將檔名加入到輸出之前。
  - l 顯示首次匹配串所在的檔名並用換行符將其隔開。當在某檔案中多次出現匹配串時,不重複顯示此檔名。
  - n 在輸出前加上匹配串所在行的行號(檔案首行行號為1)。
  - v 只顯示不包含匹配串的行。
  - x 只顯示整行嚴格匹配的行。
  - e expression 指定檢索使用的模式。用於防止以“-”開頭的模式被解釋為命令選項。
  - f expfile 從expfile檔案中獲取要搜尋的模式,一個模式佔一行。
  對該組命令的使用還需注意以下方面:
  

在命令後鍵入搜尋的模式,再鍵入要搜尋的檔案。其中,檔名列表中也可以使用特殊字元,如“*”等,用來生成檔名列表。如果想在搜尋的模式中包含有空格的字串,可以用單引號把要搜尋的模式括起來,用來表明搜尋的模式是由包含空格的字串組成。否則,Shell將把空格認為是命令列引數的定界符,而 grep命令將把搜尋模式中的單詞解釋為檔名列表中的一部分。在下面的例子中,grep命令在檔案example中搜索模式“text file”。

相關推薦

Linux egrep檔案查詢指定字串命令

功能說明:在檔案內查詢指定的字串。egrep執行效果如grep -E,使用的語法及引數可參照grep指令,與grep不同點在於解讀字串的方法,egrep是用extended regular expression語法來解讀,而grep則用basic regular expr

linux命令(19)修改檔案屬性 lsattr、chattr命令

修改檔案屬性 Linux檔案系統裡的檔案和目錄全都關聯使用者、使用者組和其他使用者的讀、寫和執行許可權。此外,還可能存在其他特定檔案系統型別才有的檔案和目錄相關屬性。 ext2和ext3檔案系統檔案可以選用一些特殊屬性。使用lsattr命令可以列出這些屬性。大部分屬性都晦澀

linux文本處理三劍客之grep命令

gawk 軟件 upper edit 進制 使用 第一個 空格 earch Linux文本處理三劍客之grep grep:文本過濾(模式:pattern)工具 grep, egrep, fgrep(不支持正則表達式搜索) sed:stream editor,

linux中chmod與chown兩個命令

In 第一個 ID 利用 root chown 資料 後綴 沒有 在linux系統中chmod,chown命令都可以來設置權限了,但它們也是有區別的,下文小編為各位介紹chmod與chown兩個命令用法與區別介紹。 今天要分享的2個命令也是我們平時常用的,chmod與cho

Linux 備份壓縮 : OA信用網出租命令

多文件 文件中 庫文件 linu ember 單獨 檔案 直接 簡述 Linux ar命令用於建立或修改備存文件,OA信用網出租(企 娥:217 1793 408)或是從備存文件中抽取文件。 ar可讓您集合許多文件,成為單一的備存文件。在備存文件中,所有成員文件皆保有原來的

Linux下的crontab定時執行任務命令

   crontab命令常見於Unix和類Unix的作業系統之中,用於設定週期性被執行的指令。該命令從標準輸入裝置讀取指令,並將其存放於“crontab”檔案中,以供之後讀取和執行。該詞來源於希臘語 chronos(χρνο),原意是時間。通常,crontab儲存的指令被守護

Linux基礎知識之chattr和lsattr命令

有時候你發現通過root使用者都不能修改某個檔案,大部分原因是曾經用chattr命令鎖定該檔案了。chattr命令的作用很大,其中一些功能是由Linux核心版本來支援的,不過現在生產絕大部分跑的linux系統都是2.6以上核心。通過chattr命令修改屬效能夠提高系統的安全性,但是它並不適合所有的目

Linux網路流量實時監控ifstat iftop命令

ifstat 介紹 ifstat工具是個網路介面監測工具,比較簡單看網路流量 例項 預設使用 #ifstat eth0 eth1 KB/s in KB/s out KB/s in KB/s o

Linux下的cron定時執行任務命令

部落格引用處(以下內容在原有部落格基礎上進行補充或更改,謝謝這些大牛的部落格指導): Linux下的crontab定時執行任務命令詳解 在LINUX中,週期執行的任務一般由cron這個守護程序來處理[ps -ef|grep cron]。cron讀取一個或多個配置檔案,這些配置檔案中包含了

Linux Shell指令碼程式設計--awk命令

簡單使用: awk :對於檔案中一行行的獨處來執行操作 。 awk -F :'{print $1,$4}'   :使用‘:’來分割這一行,把這一行的第一第四個域打印出來 。 詳細介紹: AWK命令介紹 awk語言的最基本功能是在檔案或字串中基於指定規則瀏覽和抽取資訊,awk抽取資訊後,才能進行其他

jar檔案包及jar包命令

JAR檔案包及jar命令詳解常常在網上看到有人詢問:如何把 java 程式編譯成 .exe 檔案。通常回答只有兩種,一種是製作一個可執行的 JAR 檔案包,然後就可以像.chm 文件一樣雙擊運行了;而另一種是使用 JET 來進行 編譯。但是 JET 是要用錢買的,而且據說 J

Linux下的計劃任務:crontab命令

前一天學習了 at 命令是針對僅執行一次的任務,迴圈執行的例行性計劃任務,linux系統則是由 cron (crond) 這個系統服務來控制的。Linux 系統上面原本就有非常多的計劃性工作,因此這個系統服務是預設啟動的。另外, 由於使用者自己也可以設定計劃任務,所以, Linux 系統也提供了使用者控制

Linux / Mac 下 基本的 bash shell 命令(touch 、cp、mv、rm)

前言 這一篇主要說了touch,cp,mv,rm這幾個很基本常用的命令。部落格會同時釋出在簡書和CSDN,希望大家支援。 處理檔案 bash shell 提供了很多在Linux檔案系統上操作檔案的命令。 建立檔案 touch 可以使用touch

Linux Shell指令碼程式設計--scp命令

不同的Linux之間copy檔案常用有3種方法: 第一種就是ftp,也就是其中一臺Linux安裝ftp Server,這樣可以另外一臺使用ftp的client程式來進行檔案的copy。 第二種方法就是採用samba服務,類似Windows檔案copy 的方式來操作,比較簡潔方便。 第三種就是利用scp命令來

Linux Shell指令碼程式設計--sed命令

簡介 sed 是一種線上編輯器,它一次處理一行內容。處理時,把當前處理的行儲存在臨時緩衝區中,稱為“模式空間”(pattern space),接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往螢幕。接著處理下一行,這樣不斷重複,直到檔案末尾。檔案內容並沒有

Linux Shell指令碼程式設計--xargs命令

xargs是給命令傳遞引數的一個過濾器,也是組合多個命令的一個工具。它把一個數據流分割為一些足夠小的塊,以方便過濾器和命令進行處理。通常情況下,xargs從管道或者stdin中讀取資料,但是它也能夠從檔案的輸出中讀取資料。xargs的預設命令是echo,這意味著通過管道傳遞給xargs的輸入將會包含換行和空

svn status 列印工作拷貝檔案和目錄的狀態命令

名稱 svn status ― 列印工作拷貝檔案和目錄的狀態。 概要 svn status [PATH...]

Linux檔案查詢命令

find 查詢檔案 find ./ -type f 查詢目錄 find ./ -type d 查詢名字為test的檔案或目錄 find ./ -name test 查詢名字符合正則表示式的檔案,注意前面的‘.*’(查詢到的檔案帶有目錄) find ./ -regex .*so.*\.gz 查詢目

Linux工作筆記034---linux tail命令_linux在vi中查詢字串

使用vi編輯器編輯長檔案時,常常是頭昏眼花,也找不到需要更改的內容。 這時,使用查詢功能尤為重要。 方法如下: 1、命令模式下輸入“/字串”,例如“/Section 3”。 2、如果查詢下一個,按“n”即可。 要自當前游標位置向上搜尋,請使用以下命令: /pa

在vim中使用查詢命令查詢指定字串

要自當前游標位置向上搜尋,請使用以下命令:           /pattern   Enter             其中,pattern   表示要搜尋的特定字元序列。           要自當前游標位置向下搜尋,請使用以下命令:           ?pattern   Enter