awk指令碼作業

2021-09-11 21:55:28 字數 1567 閱讀 3100

1.只處理使用者id為奇數的行,並列印使用者名稱和uid號

awk -f : '}' /etc/passwd

2.顯示系統的普通使用者,並列印使用者名稱和id

awk -f : '$1 != "root"' /etc/passwd

3.顯示使用者shell是』/bin/bash』的使用者,並列印使用者名稱

awk -f : '$7 == "/bin/bash"' /etc/passwd

4.統計普通使用者的個數

awk -f : '$1 != "root"' /etc/passwd |wc -l

5.統計文字的總行數

awk 'end' /etc/passwd

6.顯示檔名

ll |awk -f " " '/^-/'

7.顯示uid為501使用者的相關資訊

awk '$3 == 501' /etc/passwd

8.利用awk模擬tail -1的效果

awk 'end' /etc/passwd

9.看懂陣列兩個練習(統計tcp鏈結數)

netstat -ant|awk -f " " '/^tcp/end}'

10.將test2檔案中的行追加到test1的同一行後,並儲存到檔案test3

test1 內容

haha

hehe

alice

bobtest2內容

2025

1830

test3 內容

haha:20

hehe:25

alice:18

bob:30

awk '' test1 > test3

11.某產品的cdn頻寬運營成本迅猛增漲,其頻寬主要由各種型別的組成,為了對某產品的流量頻寬進行優化,現需要對該產品的和號碼特性做一些分析,已有的日誌檔案test.log供分析使用,格式是

號碼|請求大小|請求id,內容如下:

其中帶有gif表示是gif的請求,帶有jpg表示是jpg的請求,請使用(python/shell/awk/sort)編寫程式實現如下分析思路(1,2為中間步驟,可以只輸出3,4結果):

1.找出所有gif請求的所有號碼

2.找出所有gif請求的號碼和其對應的請求大小總和及請求數總和.

3.找出所有gif請求的號碼,並按照其請求大小總和從大到小排序.

4.找出所有gif請求的號碼,並按其請求平均大小從大到小排序.

3、awk 'begin/gif$/end}' test.log |sort -k2nr

4、awk 'begin/gif$/' test.log |sort -t "|" -k2nr

常用awk指令碼

begin else if 2 2 end 說明 按照某列的值進行分組求和。注意 awk指令碼中中間 塊本身就是是對檔案中每行都進行處理,需要使用while i此檔案命名為abc.awk 則執行方式是awk f abc.awk data 如果awk檔案不複雜,建議直接用awk命令列執行,如 awk ...

AWK 指令碼例子

能夠到乙個類似與 data sandbox scanresult 0 1 41435 42458 2 result.xml 的路徑,在該檔案目錄下還有乙個以md5命名的檔案。需求是 根據xml 路徑得到md5 全部xml 檔案路徑儲存在 randomsample55000 20150105 vre....

shell指令碼之awk

一 什麼是awk awk其實相當於一門可以處理資料文字的語言,這麼說的原因是其具有很多類c語言的語法,如 變數,陣列,函式,流程控制等,其由aho,weinberger,kernighan大約在1977年開發完成,隨後被引入unix linux中。二 awk可以幹什麼 awk是乙個非常強大的資料處理...