grep sed awk三劍客應用

2021-10-05 23:20:58 字數 2827 閱讀 8331

grep 、sed、awk被稱為linux中的"三劍客"。

功能特點:

grep適合查詢功能

sed適合取行和替換

awk適合取分隔後的列

下面對這3個命令進行乙個實踐,另附加正規表示式。

1、grep檢視檔案中是否包含有指定的字段並列印出來,常用來查詢日誌、埠等

#檢視檔案中中含有8080欄位的行

grep 8080 file

確定8080欄位在檔案中的行數

grep -n 8080 file

#確定redis在檔案中的行數並且忽略大小寫

grep -n -i "redis"

file

#匹配當前目錄下所有字尾為conf檔案含有過濾欄位的內容

grep

'redis' *.conf

2、過濾掉指定的日誌資訊(即含有關鍵字的行不顯示)

grep -v '關鍵字'

file

3、檢視日誌中的含有關鍵字error,列印行

4、grep只能按分鐘和秒進行查詢日誌

#查詢34分到35分的日誌內容

grep

'11 may 2020 10:3[4-5]' redis_6379.log

注:在此按小時會報錯,可用sed命令,下面有介紹

5、查詢埠、服務資訊

#查詢統計6379埠的連線數

netstat -nat|

grep -i "6379"

|wc -l

#查詢redis服務的埠、pid資訊

用於編輯匹配到的文字

1、取消#,去掉注釋

sed -i -e '/name/s/^#//' /root/autoredis.sh

#等價於sed -i 's/^#name/name/' /root/autoredis.sh

2、增加注釋

sed -i 's/^name/#&/' /root/autoredis.sh

## 這條命令是替換以name開頭的 ,&的意思是匹配任意字元

#將每一行結尾若為 . 則換成 !

sed -i 's/\.$/\!/g' rest

4、同時執行兩條命令

#同時去掉name、info前面的注釋

sed -i -e '/name/s/^#//' \-e '/info/s/^#//' /root/autoredis.sh

5、一次性多行注釋

sed -i '2,5s/^/#/' filename 

#vi輸入中同樣適用

6、取消多行注釋

sed -i '2,5s/^#//' filename
7、 根據日期查詢日誌

sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log
注意:其中日期由系統日誌中的具體格式決定

8、利用 sed 直接在 檔案最後一行加入 #this is a test:

sed -i '$a # this is a test'

file

9、使用sed -n查詢,並且輸出至aa.log檔案

sed -n 『/mar 15 19:01:01/,/mar 15 23:01:01/p』 cron >aa.log

注意 開始時間、結束時間一定要和linux裡面的顯示時間保持格式一致,且一定要是日誌裡面有的時間點,否則查詢不出來或者查詢結果不符合預期。

(起始時間不是的話,查詢無結果。結束時間不是的話,查詢至日誌的最後結束時間)

對分隔後的行中的列進行處理,也可進行格式化輸出

awk

[options]

'begin pattern end'

file

1、去掉以#開頭的行,再重定向到aaa.log中

具體可以參考:

正規表示式,又稱規則表示式。通常被用來檢索、替換那些符合某個模式(規則)的文字。

linux命令三劍客grep sed awk

grep cinvabc word filename c 匹配的行數,輸出行數 grep c install create.log2.i 匹配不區分大小寫,輸出所以內容 grep i dddd test3.n 輸出所有並顯示行數 4.v 取反,輸出所有沒有 install 的行 5.r 查乙個目錄下...

文字三劍客

檔案萬用字元和正規表示式 文字過濾工具grep linux系統中,一切皆檔案。強大的文字編輯和處理工具便必不可少了,在linux系統中,有文字處理三劍客 grep,sed,awk。在進行介紹三大工具前,我們先總結一下檔案萬用字元和正規表示式。檔案萬用字元主要就是對檔案的查詢進行檔名的模糊查詢,而正規...

三劍客 高階

awk 是一種程式語言,用於在linux unix下對文字和資料進行處理 awk 資料可以來自標準輸入,乙個或多個檔案,或其他命令的輸出 awk 通常是配合指令碼進行使用,是乙個強大的文字處理工具。01.進行逐行掃瞄檔案,從第一行到最後一行 02.尋找匹配的特定模式的行,在行上進行操作 03.如果沒...