- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會理事單位
- 安全聯(lián)盟認(rèn)證網(wǎng)站身份V標(biāo)記
- 域名注冊服務(wù)機構(gòu)許可:滇D3-20230001
- 代理域名注冊服務(wù)機構(gòu):新網(wǎng)數(shù)碼
1.awk是一個非常棒的數(shù)據(jù)處理工具,sed常常用于一個整行的處理,而awk則比較傾向于一行中分成數(shù)段的數(shù)據(jù)處理,通常的模式是這樣的:
awk ‘條件類型{動作1} 條件類型2{動作2} ....’ filename
2.cat /etc/passwd | awk -F : ‘{print $1 “ ” $4 “ ” $5}’
從以上截圖看出用參數(shù)-F指定域分隔符,然后打印出/etc/passwd文件的第1列、第4列、第5列,并且每列用tab隔開
-F 表示指定分隔符,默認(rèn)的是空格,如果有文檔中有空格那么不需要用這個參數(shù),相當(dāng)于”cut -d “:” -d 1”命令;
“ ”表示tab鍵;
在每個動作完成之后都會執(zhí)行 另起一行;
3.cat /etc/passwd | awk -F : ‘BEGIN {print “name” “ ” “shell”} {print $1 “ ” $7} END {print “end” “ ” “end”}’
awk工作流程是這樣的:先執(zhí)行BEGING,然后讀取文件,讀入有/n換行符分割的一條記錄,然后將記錄按指定的域分隔符劃分域,填充域,$0則表示所有域,$1表示第一個域,$n表示第n個域,隨后開始執(zhí)行模式所對應(yīng)的動作action。接著開始讀入第二條記錄······直到所有的記錄都讀完,最后執(zhí)行END操作。
3.awk ‘/nginx/’ /etc/passwd
此時的awk命令就相當(dāng)于grep nginx /etc/passwd命令
4.df -h | awk ‘$4>20’ 打印第四列數(shù)字大于20的行
5.awk幾個內(nèi)建變量
(1)NF 每一行($x)擁有的欄位總數(shù)
(2)NR 目前awk所處理的是第幾行數(shù)據(jù)
(3)FS 目前的分隔字節(jié),默認(rèn)的是空白鍵
例如:cat /etc/passwd | awk -F ":" {print $1 " " $7 " lines:" NR " columns:" NF}
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP