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檔案中獲取要搜尋的模式,一個模式佔一行。
對該組命令的使用還需注意以下方面:
相關推薦
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