grep的使用:
一、grep一般格式:
grep [選項] 基本正規表示式 [檔案]
這裡的正規表示式可以為字串。在grep命令中輸入字串引數時,最好將其用雙引號括起來。呼叫變數時也可以使用雙引號。在呼叫模式匹配事,應使用單引號。
二、grep常用選項:
-c只輸出匹配行的計數。
-i不區分大小寫(只用於單字元)。
-h查詢多檔案時不顯示檔名。
-l查詢多檔案時只輸出包含匹配字元的檔名。
-n顯示匹配行及行號。
-s不顯示不存在或無匹配文字的錯誤資訊。
-v顯示不包含匹配文字的所有行。
三、常用選項的使用:
1、 查詢多個檔案:
$grep 「hello」 *.doc
num.doc:hello
sum.doc:hello world
說明在num.doc 和sum.doc中有字串「hello「。
2、 行匹配:
$grep -c 「123」 *.doc
num.doc:2
sum.doc:2
說明在num.doc 和sum.doc中有字串「123「各為兩行。
3、 顯示滿足匹配模式的所有行數:
$grep –n 「123」 *.doc
num.doc:1:hao 123
num.doc:2:hao 123
sum.doc:2:hao 123
sum.doc:4:hao 1234
4、 顯示所有不包含「123「的行:
$grep -v 「123」 *.doc
num.doc:hello
num.doc:world
sum.doc:hello world
sum.doc:sui yue
5、 精確匹配:
如第三點,匹配「123」時,結果返回了「1234」的其它字串。
$grep -n 「123\>」 *.doc
num.doc:1:hao 123
num.doc:2:hao 123
sum.doc:2:hao 123
6、 大小寫敏感:
預設情況下,grep是大小寫敏感的,如果要查詢大小寫不敏感的字串,必須
使用-i選項。
$grep -i 「just」 *.doc
num.doc:just
num.doc:just
四、grep和正規表示式
1、模式範圍:
$ grep 『48[34]』 mydata.doc
此命令在mydata.doc中匹配字串「483」和「484」。
2、 不匹配行首:
$ grep 『^[^48]』 mydata.doc
此命令在mydata.doc中匹配除4或者8開頭的行。
3、 設定大小寫:
$ grep 『[ss]ept』 mydata.doc
此命令在mydata.doc中匹配字串「sept」和「sept」。
4、匹配任意字元:
$ grep 『a…z』 mydata.doc
此命令在mydata.doc中匹配字串以字元a開頭和字元z結尾,中間為任意三個字元。
5、 模式出現的機率
$ grep 『1\』 mydata.doc
此命令說明數字1至少出現兩次
awk的使用:
一、awk的呼叫格式:
awk的呼叫格式有三種:
第一種是命令列的方式,如下:
awk [-f field-separator] 『commands』 input-file
[-f]域分隔符,是可選的,awk使用空格作為預設的域分隔符。
第二種方法是將awk命令插入到乙個檔案,並使awk程式可以執行,然後用awk命令直譯器作為指令碼的首行,以便通過鍵入指令碼名稱來呼叫它。
第三種方法是將所有的awk命令插入乙個單獨檔案,然後呼叫:
awk –f awk-script-file input-file
二、動作和模式
任何awk語句都有模式和動作組成。模式部分決定動作語句何時觸發及觸發事件。
模式包括兩個特殊欄位begin和end.,begin語句使用在任何文字瀏覽動作之前,之後文字瀏覽動作依據輸入檔案開始執行,end語句用來在awk完成文字瀏覽動作後列印輸出文字中輸出和結尾狀態標誌。實際動作在大括號內指明。
三、域和記錄
awk執行時,其瀏覽域標記為$1,$2 ….$n.。這種方法稱為域標識。
1、儲存awk輸出
第一種方法:
$awk 『』 mydata.txt >newfile.txt
顯示屏上不會輸出結果。
第二種方法:
$awk 『』 mydata.txt | tee newfile.txt
輸出到檔案中,同時顯示在顯示器上。
2、使用標準輸入
第一種方法:使用awk指令碼輸入檔案格式
$myawk.awk inputfile.txt
第二種方法:使用重定向
$myawk.awk < inputfile.txt
第三種方法:使用管道
$inputfile.txt | myawk.awk
3、列印所有記錄
$awk 『』 myfile.txt
由於沒有模式部分,只有動作部分,動作必須用花括號括起來。
lisi 25 wuhan
wangjian 33 shanghai
caiming 55 shenzhen
4、列印單獨記錄
要用逗號分隔域
$awk 『』 myfile.txt
lisi 25
wangjian 33
caiming 55
5、列印報告頭
$awk 『begin 』 mfile.txt
name age
***************
lisi25
wangjian 33
caiming 55
6、列印資訊尾
$awk 『begin end 』 mfile.txt
sed的使用:
一、sed呼叫格式
sed呼叫格式有三種:
第一種命令列方式:
sed [option] 『command』 inputfile
command要加單引號,也允許加雙引號。
sed [option] –f sed-script-file inputfile
sed-script-file [option] inputfile
二、sed選項:
f 如果正在呼叫sed指令碼檔案,使用此選項。此選項通知sed指令碼檔案支援所有的sed命令。
三、sed常規用法:
1、 儲存sed 輸出
$ sed 『command』 inputfile > outfile
2、 sed在檔案中查詢文字的方式
sed瀏覽檔案時,預設從第一行開始,有兩種方法定位文字:
第一種:使用行號,可以用簡單數字或是乙個行號範圍。
第二種:使用正規表示式。
sed定位文字的一些方式,如下:
x x表示行號。
x,y 表示行號範圍從x到y。
/pattern/ 查詢包含模式的行。
x,/pattern 通過行號和模式查詢匹配行。
x,y! 查詢不包含指定行號x到y的行。
3、 sed編輯命令
p 列印匹配行
= 顯示檔案行號
a\ 在定位行號後附加拳文字資訊
i\ 在定位行號後插入拳文字資訊
d 刪除定位行
c\ 用拳文字替換定位文字
s 使用替換模式替換相應模式
r 從另乙個檔案中讀文字
w 寫文字到乙個檔案
q 第乙個模式匹配完成後推出或立即推出
l 顯示與八進位制ascii**造價的控制字元
{} 在定位行執行的命令組
g 將模式2貼上到/pattern n/
y 傳送字元
n 延續到下一輸入行;允許跨行的模式匹配語句。
4、 使用p顯示行
$sed -n 『2p』 myfile.txt
hello world!
-n選項,顯示列印定位行。
5、 列印範圍
$sed -n 『1,3p』 myfile.txt
hao 123
hello world!
ni hao ma?
列印1到3行。
6、 列印模式
$sed -n 『/123/』p myfile.txt
hao 123
7、 在指定行號匹配模式
$sed -n 『5,/hao/』p myfile.txt
hao ma?
參考:以上內容**此篇文章)
Linux命令(八)過濾文字 grep
grep是乙個強大的文字搜尋工具命令,用於查詢檔案中符合指定格式的字串,支援正規表示式。如不指定任何檔名稱,或是檔名為 則gerp命令從標準輸入裝置中讀取資料。grep家族包括grepegrep和fgrep。egrep 和 fgrep 命令只跟 grep 有很小的不同。egrep 是 grep 的擴...
Linux文字處理之grep文字過濾命令
grep 縮寫來自globally search a regular expression and print 是一種強大的文字搜尋工具 它能使用特定模式匹配 包括正規表示式 搜尋文字,並預設輸出匹配行 unix的grep家族包括grep egrep和fgrep,windows系統下類似命令find...
linux之文字查詢grep命令
grep是linux下常用的文字查詢命令。grep使用的一般格式為 grep 選項 搜尋內容串 檔名 常用選項 含義 v 顯示不包含匹配文字的所有行 相當於求反 n 顯示匹配行及行號 i 忽略大小寫 例如要查詢某個目錄下所有包含 good 的檔案,並顯示 good 所在行號 grep搜尋內容串可以是...