<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          awk,真的是一款牛逼的神器!

          共 3028字,需瀏覽 7分鐘

           ·

          2020-04-25 23:22


          1754eaeb1e49d11c075c766e1025c9d7.webp3f6b3986825a2b2cb50a59d994f42090.webp


          點(diǎn)擊「閱讀原文」查看良許原創(chuàng)精品視頻。

          作者:川山甲

          來(lái)源:https://www.cnblogs.com/baochuan/p/3833130.html

          # 序

          ?

          產(chǎn)品經(jīng)理(PM)過(guò)來(lái)找你要最近某某的數(shù)據(jù),而你知道這些數(shù)據(jù)目前只能通過(guò)日志文件去分析,因?yàn)槲覀冎溃覀儾豢赡馨阉袛?shù)據(jù)都放入db中(這不科學(xué)啊!)。每當(dāng)有這樣任務(wù)的時(shí)候,你就用php或java(又或c)寫一個(gè)特殊任務(wù)的程序,這真是一件令人頭痛的事情。

          ?b7010287119e58631e82dbcfbe49c464.webp

              ?

          # 放入db???

          ?

          為什么我不建議把數(shù)據(jù)放入db中呢??jī)?yōu)點(diǎn)不言自明,我們可以通過(guò)sql語(yǔ)句很容易把數(shù)據(jù)拿出來(lái)。


          缺點(diǎn)呢?首先就是我們不能把什么東西都往db里放?


          原因,我歸納了以下幾點(diǎn):


          1、數(shù)據(jù)的抽風(fēng)型:


          一般都是某某(不敢指明點(diǎn)姓,怕打擊報(bào)復(fù))腦門子一拍,突然想要某些數(shù)據(jù),這就會(huì)來(lái)找你要。等這股抽風(fēng)勁一過(guò),很長(zhǎng)時(shí)間沒(méi)人再找你要數(shù)據(jù)了。


          2、數(shù)據(jù)的臃腫型:


          與其說(shuō)是臃腫還不如說(shuō)是亂七八糟。你不能把那一坨一坨的雜七雜八的數(shù)據(jù),一股腦放入db中吧?那你的后臺(tái)db成什么樣子了?所以我們要管好我們的后院,不能什么東西都放到家里面。


          3、成本:


          干什么事情,我們不能做賠本的買賣。像這種一次性的買賣,我們就要降低成本去做。

          ?

          為了解決以上問(wèn)題,我們請(qǐng)出awk神器吧?一種“短小精悍”的神器,常常用一兩行代碼就能搞定一些復(fù)雜的任務(wù)。

          ?9f9b5e97cde736dd6ceaecec1eaf9880.webp


          # 本文宗旨

          ?

          awk不難,關(guān)鍵是看我們?cè)趺此伎迹课业乃伎挤绞绞牵涸谶@么多數(shù)據(jù)行中,我要找什么(行位置)?找到之后,我們要干什么(如{})?


          故我的主題就出來(lái)了:找什么和干什么。我不想講什么語(yǔ)法之類的東西(不要在意這些細(xì)節(jié))。

          ?

          # 找什么?

          ?

          這個(gè)世界最難的不是做什么,而是找什么?李清照的“尋尋覓覓”,最后把自己尋覓沒(méi)了。仿古人,俺也尋尋覓覓了一陣子,結(jié)果跟清照大姐一樣,迷失在尋尋覓覓中,到現(xiàn)在都不知道我在尋覓什么?——個(gè)人認(rèn)為找什么不是體力活,而是技術(shù)活。awk吸引我的,也就是它教會(huì)了我怎么找我想要的東西?

          ?

          ?準(zhǔn)備干糧


          cat  netstat.txt Proto Recv-Q Send-Q Local-Address          Foreign-Address             Statetcp        0      0 0.0.0.0:3306           0.0.0.0:*                   LISTENtcp        1      1 0.0.0.0:80             0.0.0.0:*                   LISTENtcp        0      0 127.0.0.1:9000         0.0.0.0:*                   LISTENtcp        0      0 yuedu.com:80        124.205.5.146:18245         TIME_WAITtcp        0      0 yuedu.com:80        61.140.101.185:37538        FIN_WAIT2tcp        0      0 yuedu.com:80        110.194.134.189:1032        ESTABLISHEDtcp        0      0 yuedu.com:80        123.169.124.111:49809       ESTABLISHEDtcp        0      0 yuedu.com:80        116.234.127.77:11502        FIN_WAIT2tcp        0      0 yuedu.com:80        123.169.124.111:49829       ESTABLISHEDtcp        0      0 yuedu.com:80        183.60.215.36:36970         TIME_WAITtcp        0   4166 yuedu.com:80        61.148.242.38:30901         ESTABLISHEDtcp        0      1 yuedu.com:80        124.152.181.209:26825       FIN_WAIT1tcp        0      0 yuedu.com:80        110.194.134.189:4796        ESTABLISHEDtcp        0      0 yuedu.com:80        183.60.212.163:51082        TIME_WAITtcp        0      1 yuedu.com:80        208.115.113.92:50601        LAST_ACKtcp        0      0 yuedu.com:80        123.169.124.111:49840       ESTABLISHEDtcp        0      0 yuedu.com:80        117.136.20.85:50025         FIN_WAIT2tcp        0      0 :::22                  :::*                        LISTEN

          ?

          ?上小菜(基礎(chǔ)條件匹配):


          ?查詢所有tcp中,接受隊(duì)列非0的網(wǎng)絡(luò)包。


          localhost:zhoubc Guest$ awk '$1 =="tcp" && $2 > 0' netstat.txt tcp        1      1 0.0.0.0:80             0.0.0.0:*                   LISTEN


          打印出來(lái)的內(nèi)容,我們不知所云。如果把第一行打出來(lái),就一目了然了。這時(shí)候我們要用到awk的全局常量(如果想知道AWK的全局常量,我們可以往下看,附錄,我把常用的羅列出來(lái)了)NR。


          localhost:zhoubc Guest$ awk 'NR==1 || $1 =="tcp" && $2 > 0' netstat.txt Proto Recv-Q Send-Q Local-Address          Foreign-Address             Statetcp        1      1 0.0.0.0:80             0.0.0.0:*                   LISTEN


          看爽了是不是?


          --END--



          本公眾號(hào)全部博文已整理成一個(gè)目錄,請(qǐng)?jiān)诠娞?hào)里回復(fù)「m」獲取!

          推薦閱讀:

          餓了么總監(jiān)分享:我是如何完成從程序員到管理層的蛻變?

          為什么互聯(lián)網(wǎng)公司天天都在招人?

          Linux 命令行下搜索工具大盤點(diǎn),效率提高不止一倍!


          5T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機(jī),樹(shù)莓派,等等。在公眾號(hào)內(nèi)回復(fù)「1024」,即可免費(fèi)獲取!!


          瀏覽 20
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人黄色免费在线 | 蜜芽尤物在线 | 韩国一区二区三区免费视频 | 免费日韩精品 | 婷婷大香蕉 |