亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

awk(1)

2024-06-28 14:32:49
字體:
來源:轉載
供稿:網友

從netstat命令中提取了如下信息作為用例

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

下面是最簡單最常用的awk示例,其輸出第1列和第4例

  • 其中單引號中的被大括號括著的就是awk的語句,注意,其只能被單引號包含。
  • 其中的$1..$n表示第幾例。注:$0表示整個行。
    $ awk '{print $1, $4}' netstat.txtProto Local-Addresstcp 0.0.0.0:3306tcp 0.0.0.0:80tcp 127.0.0.1:9000tcp coolshell.cn:80tcp coolshell.cn:80tcp coolshell.cn:80tcp coolshell.cn:80tcp coolshell.cn:80tcp coolshell.cn:80tcp coolshell.cn:80tcp coolshell.cn:80tcp coolshell.cn:80tcp coolshell.cn:80tcp coolshell.cn:80tcp coolshell.cn:80tcp coolshell.cn:80tcp coolshell.cn:80tcp :::22

我們再來看看awk的格式化輸出,和C語言的printf沒什么兩樣:

$ awk'{printf "%-8s %-8s %-8s %-18s %-22s %-15s/n",$1,$2,$3,$4,$5,$6}'netstat.txtProto    Recv-Q   Send-Q   Local-Address      Foreign-Address        Statetcp      0        0        0.0.0.0:3306       0.0.0.0:*              LISTENtcp      0        0        0.0.0.0:80         0.0.0.0:*              LISTENtcp      0        0        127.0.0.1:9000     0.0.0.0:*              LISTENtcp      0        0        coolshell.cn:80    124.205.5.146:18245    TIME_WAITtcp      0        0        coolshell.cn:80    61.140.101.185:37538   FIN_WAIT2tcp      0        0        coolshell.cn:80    110.194.134.189:1032   ESTABLISHEDtcp      0        0        coolshell.cn:80    123.169.124.111:49809  ESTABLISHEDtcp      0        0        coolshell.cn:80    116.234.127.77:11502   FIN_WAIT2tcp      0        0        coolshell.cn:80    123.169.124.111:49829  ESTABLISHEDtcp      0        0        coolshell.cn:80    183.60.215.36:36970    TIME_WAITtcp      0        4166     coolshell.cn:80    61.148.242.38:30901    ESTABLISHEDtcp      0        1        coolshell.cn:80    124.152.181.209:26825  FIN_WAIT1tcp      0        0        coolshell.cn:80    110.194.134.189:4796   ESTABLISHEDtcp      0        0        coolshell.cn:80    183.60.212.163:51082   TIME_WAITtcp      0        1        coolshell.cn:80    208.115.113.92:50601   LAST_ACKtcp      0        0        coolshell.cn:80    123.169.124.111:49840  ESTABLISHEDtcp      0        0        coolshell.cn:80    117.136.20.85:50025    FIN_WAIT2tcp      0        0        :::22              :::*                   LISTEN

我們再來看看如何過濾記錄(下面過濾條件為:第三列的值為0 && 第6列的值為LISTEN)

$ awk '$3==0 && $6=="LISTEN" ' netstat.txttcp        0      0 0.0.0.0:3306               0.0.0.0:*              LISTENtcp        0      0 0.0.0.0:80                 0.0.0.0:*              LISTENtcp        0      0 127.0.0.1:9000             0.0.0.0:*              LISTENtcp        0      0 :::22                      :::*                   LISTEN

其中的“==”為比較運算符。其他比較運算符:!=, <, < >=, < p>

 

我們來看看各種過濾記錄的方式:

$ awk' $3>0 {print $0}'netstat.txtProto Recv-Q Send-Q Local-Address          Foreign-Address             Statetcp        0   4166 coolshell.cn:80        61.148.242.38:30901         ESTABLISHEDtcp        0      1 coolshell.cn:80        124.152.181.209:26825       FIN_WAIT1tcp        0      1 coolshell.cn:80        208.115.113.92:50601        LAST_ACK

如果我們需要表頭的話,我們可以引入內建變量NR:

$ awk '$3==0 && $6=="LISTEN" || NR==1 '  netstat.txtProto Recv-Q Send-Q Local-Address          Foreign-Address             Statetcp        0      0 0.0.0.0:3306           0.0.0.0:*                   LISTENtcp        0      0 0.0.0.0:80             0.0.0.0:*                   LISTENtcp        0      0 127.0.0.1:9000         0.0.0.0:*                   LISTENtcp        0      0 :::22                  :::*                        LISTEN

再加上格式化輸出:

$ awk'$3==0 && $6=="LISTEN" || NR==1 {printf "%-20s %-20s %s/n",$4,$5,$6}'netstat.txtLocal-Address        Foreign-Address      State0.0.0.0:3306         0.0.0.0:*            LISTEN0.0.0.0:80           0.0.0.0:*            LISTEN127.0.0.1:9000       0.0.0.0:*            LISTEN:::22                :::*                 LISTEN

內建變量

說到了內建變量,我們可以來看看awk的一些內建變量:

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

怎么使用呢,比如:我們如果要輸出行號:

$ awk'$3==0 && $6=="ESTABLISHED" || NR==1 {printf "%02s %s %-20s %-20s %s/n",NR, FNR, $4,$5,$6}'netstat.txt01 1 Local-Address        Foreign-Address      State07 7 coolshell.cn:80      110.194.134.189:1032 ESTABLISHED08 8 coolshell.cn:80      123.169.124.111:49809 ESTABLISHED10 10 coolshell.cn:80      123.169.124.111:49829 ESTABLISHED14 14 coolshell.cn:80      110.194.134.189:4796 ESTABLISHED17 17 coolshell.cn:80      123.169.124.111:49840 ESTABLISHED
指定分隔符
$  awk 'BEGIN{FS=":"} {print $1,$3,$6}' /etc/passwdroot 0 /rootbin 1 /bindaemon 2 /sbinadm 3 /var/admlp 4 /var/spool/lpdsync5 /sbinshutdown6 /sbinhalt 7 /sbin

上面的命令也等價于:(-F的意思就是指定分隔符)

$ awk-F: '{print $1,$3,$6}'/etc/passwd

注:如果你要指定多個分隔符,你可以這樣來:

awk-F '[;:]'

字符串匹配

$ awk '$6 ~ /FIN/ || NR==1 {print NR,$4,$5,$6}' OFS="/t" netstat.txt1       Local-Address   Foreign-Address State6       coolshell.cn:80 61.140.101.185:37538    FIN_WAIT29       coolshell.cn:80 116.234.127.77:11502    FIN_WAIT213      coolshell.cn:80 124.152.181.209:26825   FIN_WAIT118      coolshell.cn:80 117.136.20.85:50025     FIN_WAIT2$ $ awk '$6 ~ /WAIT/ || NR==1 {print NR,$4,$5,$6}' OFS="/t" netstat.txt1       Local-Address   Foreign-Address State5       coolshell.cn:80 124.205.5.146:18245     TIME_WAIT6       coolshell.cn:80 61.140.101.185:37538    FIN_WAIT29       coolshell.cn:80 116.234.127.77:11502    FIN_WAIT211      coolshell.cn:80 183.60.215.36:36970     TIME_WAIT13      coolshell.cn:80 124.152.181.209:26825   FIN_WAIT115      coolshell.cn:80 183.60.212.163:51082    TIME_WAIT18      coolshell.cn:80 117.136.20.85:50025     FIN_WAIT2

上面的示例匹配FIN狀態, 第二個示例匹配WAIT字樣的狀態。其實 ~ 表示模式開始。/ /中是模式。這就是一個正則表達式的匹配。

 

其實awk可以像grep一樣的去匹配第一行,就像這樣:

$ awk '/LISTEN/' netstat.txttcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTENtcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTENtcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTENtcp        0      0 :::22                   :::*                    LISTEN

 

我們可以使用 “/FIN|TIME/” 來匹配 FIN 或者 TIME :

$ awk'$6 ~ /FIN|TIME/ || NR==1 {print NR,$4,$5,$6}'OFS="/t"netstat.txt1       Local-Address   Foreign-Address State5       coolshell.cn:80 124.205.5.146:18245     TIME_WAIT6       coolshell.cn:80 61.140.101.185:37538    FIN_WAIT29       coolshell.cn:80 116.234.127.77:11502    FIN_WAIT211      coolshell.cn:80 183.60.215.36:36970     TIME_WAIT13      coolshell.cn:80 124.152.181.209:26825   FIN_WAIT115      coolshell.cn:80 183.60.212.163:51082    TIME_WAIT18      coolshell.cn:80 117.136.20.85:50025     FIN_WAIT2

再來看看模式取反的例子:

$ awk'$6 !~ /WAIT/ || NR==1 {print NR,$4,$5,$6}'OFS="/t"netstat.txt1       Local-Address   Foreign-Address State2       0.0.0.0:3306    0.0.0.0:*       LISTEN3       0.0.0.0:80      0.0.0.0:*       LISTEN4       127.0.0.1:9000  0.0.0.0:*       LISTEN7       coolshell.cn:80 110.194.134.189:1032    ESTABLISHED8       coolshell.cn:80 123.169.124.111:49809   ESTABLISHED10      coolshell.cn:80 123.169.124.111:49829   ESTABLISHED12      coolshell.cn:80 61.148.242.38:30901     ESTABLISHED14      coolshell.cn:80 110.194.134.189:4796    ESTABLISHED16      coolshell.cn:80 208.115.113.92:50601    LAST_ACK17      coolshell.cn:80 123.169.124.111:49840   ESTABLISHED19      :::22   :::*    LISTEN

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲综合一区二区不卡| 日韩中文字幕在线看| 久久亚洲国产精品成人av秋霞| 精品福利免费观看| 久久人体大胆视频| 久久久精品999| 亚洲精品中文字| 亚洲第一区第二区| 三级精品视频久久久久| 亚洲激情视频在线| 亚洲成色999久久网站| 亚洲午夜激情免费视频| 九九精品视频在线观看| 精品一区精品二区| 国产美女扒开尿口久久久| 国产午夜精品视频| 麻豆国产va免费精品高清在线| 亚洲色图五月天| 国产精品稀缺呦系列在线| 社区色欧美激情 | 欧美午夜电影在线| 欧美一级片在线播放| 国产97在线|日韩| 久久久中精品2020中文| 都市激情亚洲色图| 亚洲天堂成人在线视频| 欧美剧在线观看| 欧美成人在线免费视频| 亚洲国产精品久久久久秋霞不卡| 久久99国产综合精品女同| 久久国产精品99国产精| 欧美激情精品久久久久久免费印度| 国产97色在线| 国产中文欧美精品| 欧美成人免费网| 亚洲va久久久噜噜噜| 亚洲人成毛片在线播放| 欧美在线观看www| 一级做a爰片久久毛片美女图片| 欧美国产日韩一区二区| 中文字幕v亚洲ⅴv天堂| 色www亚洲国产张柏芝| 亚洲国产成人一区| 成人一区二区电影| 亚洲精品美女在线观看| 精品激情国产视频| 啪一啪鲁一鲁2019在线视频| 国产日韩综合一区二区性色av| 97视频在线观看免费| 欧美日产国产成人免费图片| 久久激情视频免费观看| 成人xxxx视频| 欧美激情视频播放| 91tv亚洲精品香蕉国产一区7ujn| 亚洲成**性毛茸茸| 欧美中在线观看| 日韩在线精品视频| 日韩av在线一区二区| 国产精品久久久久久久久借妻| 日韩av免费在线| 国产精品69av| 中文.日本.精品| 日韩欧美视频一区二区三区| 国产日韩欧美影视| 2025国产精品视频| 国产午夜精品一区理论片飘花| 欧美一级成年大片在线观看| 国产精品成人久久久久| 伊人久久久久久久久久久| 久久亚洲综合国产精品99麻豆精品福利| 亚洲最大成人网色| 欧美性猛交xxxxx水多| 欧美激情xxxx| 中文字幕日韩精品在线| 久久久久久久一| 欧美老少做受xxxx高潮| 久久久久久久久综合| 国产日韩精品在线观看| 成人激情视频在线| 亚洲一二三在线| 精品高清美女精品国产区| 91日本在线视频| 中文日韩电影网站| 久久久精品在线观看| 日本电影亚洲天堂| 国产精品永久免费在线| 免费不卡在线观看av| 亚洲老司机av| 久久人体大胆视频| 69av在线视频| 国产做受69高潮| 日本精品免费一区二区三区| 久久久精品中文字幕| 成人在线国产精品| 精品成人在线视频| 国产99久久精品一区二区| 欧美激情一级二级| 一区二区亚洲精品国产| 美女久久久久久久| 亚洲性夜色噜噜噜7777| xx视频.9999.com| 国产精品日韩欧美大师| 国产欧美最新羞羞视频在线观看| 国产偷国产偷亚洲清高网站| 欧美美最猛性xxxxxx| 久久99视频精品| 91在线高清免费观看| 九九精品视频在线| 国产欧美韩国高清| 亚洲精品久久久久中文字幕欢迎你| 91久久精品国产91久久| 久久乐国产精品| 精品人伦一区二区三区蜜桃网站| 国产精品视频999| 久久久久国产精品一区| 不卡av日日日| 亚洲天堂av在线免费观看| 欧美性xxxx极品hd满灌| 欧美日韩人人澡狠狠躁视频| 欧美国产在线视频| 国产精品中文久久久久久久| 日韩的一区二区| 亚洲欧美第一页| 国产日韩av在线播放| 国产欧美在线播放| 色yeye香蕉凹凸一区二区av| 欧美高清视频在线播放| 久久久av网站| 国产日韩精品在线播放| 美日韩丰满少妇在线观看| 国产精品91免费在线| 欧美成人激情视频| 欧美日韩国产中文字幕| 欧美视频在线观看免费| 亚洲欧美日韩第一区| 日韩av电影在线免费播放| 中日韩美女免费视频网站在线观看| 日韩av在线影院| 久久精品国产成人精品| 久久久久久午夜| 韩剧1988免费观看全集| 亚洲第一综合天堂另类专| 色综合久久悠悠| 九九热精品视频在线播放| 欧美日韩在线观看视频| 亚洲第一二三四五区| 欧美日韩中文字幕在线| 在线一区二区日韩| 色偷偷88888欧美精品久久久| 色婷婷av一区二区三区久久| 国产日韩在线亚洲字幕中文| 日韩在线视频导航| 丝袜美腿精品国产二区| 欧美日韩精品在线| 精品magnet| 成人美女av在线直播| 亚洲欧洲日产国产网站| 欧美黑人一级爽快片淫片高清| 久久久久久亚洲精品中文字幕| 欧美性xxxx18| 日韩精品在线免费观看视频| 91精品国产91久久久久久不卡| 亚洲国产天堂久久国产91| 亚洲日韩第一页|