国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
AWK 簡單使用

編輯人:AK

引用(張星宇發(fā)布的 “2018 年將至,iOS 工程師如何自我提高” )腳本語言非常重要,絕對是提升工作效率的神器,我強(qiáng)烈建議每個客戶端工程師都應(yīng)該了解一些 Shell 腳本并且掌握 Python,Ruby 和 JS 中至少一門語言。

理論上來說沒有什么是腳本語言做得到,Java 做不到的,但腳本語言最大的特點就是快,快到極點的那種快。對于一些極度簡單的小需求,比如統(tǒng)計一個文件中某一列數(shù)字的平均數(shù),我敢保證在我得出結(jié)果之前你肯定還來不及打開 Java 編輯器。

腳本語言的另一個特點是高度的自動化,只要 Unix 和 Linux 系統(tǒng)一天不死,shell 腳本就會永遠(yuǎn)存活,你學(xué)習(xí)的知識就永遠(yuǎn)不會過期,比如 awk 和 sed 這樣的神器,年齡比我大得多,至今還非常實用,未來的 20 年也絲毫看不出淘汰的跡象。試問一下,有什么知識能比一個幾十年不會過期,而且每天都能用上的知識更值得學(xué)習(xí)呢?由于 Shell 是距離操作系統(tǒng)最近的腳本,了解了它以后,很多復(fù)雜的操作都可以被自動化。比如想找到項目中無用的圖片,也就是一行命令的事

awk內(nèi)建變量

變量說明
$0當(dāng)前記錄(這個變量中存放著整個行的內(nèi)容)
1 1~1 n當(dāng)前記錄的第n個字段,字段間由FS分隔
FS輸入字段分隔符 默認(rèn)是空格或Tab
NF當(dāng)前記錄中的字段個數(shù),就是有多少列
NR已經(jīng)讀出的記錄數(shù),就是行號,從1開始,如果有多個文件話,這個值也是不斷累加中。
FNR當(dāng)前記錄數(shù),與NR不同的是,這個值會是各個文件自己的行號
RS輸入的記錄分隔符, 默認(rèn)為換行符
OFS輸出字段分隔符, 默認(rèn)也是空格
ORS輸出的記錄分隔符,默認(rèn)為換行符
FILENAME當(dāng)前輸入文件的名字

一,簡單使用

我都是以 nestat.txt 為例子

Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)tcp4       0      0  192.168.16.130.55429   ec2-52-193-9-121.https ESTABLISHEDtcp4       0      0  192.168.16.130.55426   42.120.17.16.https     ESTABLISHEDtcp6       0      0  im-aks-brother-2.55421 iphonex.49596          ESTABLISHEDtcp6       0      0  im-aks-brother-2.55414 iphonex.49578          ESTABLISHEDtcp6       0      0  im-aks-brother-2.55410 iphonex.49568          ESTABLISHEDtcp4       0      0  192.168.16.130.55401   ec2-34-203-25-67.https ESTABLISHEDtcp4       0      0  192.168.16.130.55399   153.35.132.52.http     ESTABLISHEDtcp6       0      0  im-aks-brother-2.55361 fe80::10c0:5b06:.63596 ESTABLISHEDtcp6       0      0  im-aks-brother-2.55359 fe80::10c0:5b06:.63591 FIN_WAIT_2tcp6       0      0  im-aks-brother-2.55354 fe80::10c0:5b06:.63584 ESTABLISHED
1,輸出指定列 (第一列)
awk '{print $1}' netstat.txt
2,替換字符串,把文件中的ESTABLISHED 替換成"聽"
awk 'gsub(/ESTABLISHED/,"聽"); print "\n",$1,$2,$3,$4,$5,$6} ' netstat.txt
3,過濾 state 為FIN_WAIT_2的數(shù)據(jù) 其中的“==”為比較運(yùn)算符。其他比較運(yùn)算符:!=, >, <, >=, <=
awk '$6=="FIN_WAIT_2"' netstat.txt

二, 實用例子

1, 批量關(guān)閉打開的iTerm2應(yīng)用
 ps |grep iTerm2 | grep -v grep| awk '{print $1}' | xargs kill -9
2, 關(guān)閉指定端口的服務(wù)器 以 swift 服務(wù)為例子端口 8181
lsof -nP -iTCP:8181 |grep LISTEN|awk '{print $2}'|kill -9

其它

有一些記不住的地方可以去 google 查找,最主要的其實是什么時候,什么問題使用 awk 這才是要鍛煉的思維方式.

參考資料

AWK 實戰(zhàn)指南

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
系統(tǒng)資源監(jiān)控——聯(lián)用awk與grep文本處理工具,截取磁盤使用量字段
linux 文本編輯命令grep sed awk(轉(zhuǎn)) - linux開發(fā) - gliet...
linux Shell學(xué)習(xí)筆記第一天
awk?用來實現(xiàn)對文本文件的字段處理
Linux必學(xué)技能:文本操作三劍客(awk/sed/grep)應(yīng)用實例
linux三劍客(grep、sed、awk)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服