shell 编程求解,下面的代码里awk 是什么意思?

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

awk是一个强大的文字处理工具,这是我的awk学习笔记http://blog.uouo123.com/post/312.html

awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'是把tcp开头的匹配出来,再把末尾那一列出现的次数进行汇总

TIME_WAIT 4
ESTABLISHED 2
这样就可以知道tcp连接状态的情况了追问

awk 里面这些 for ,还有一些变量不用加$,这是都属于awk自己的语法吗?和shell基本语法是没关系是吗?

追答

awk的常规变量是不用$的,$1,$NF这类都是有特殊含义的,默认分隔符是空格,$1指第一列,$NF指最后一列。纯属awk自己的语法,和shell没什么关系

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-09
1
第一题
data.tmp是文件名
awk
-f'&&'
'{a[$1]+=$2}end{for(i
in
a)print
i,a[i]}'
data.tmp
2
先去吃早点
等等在作
awk
-f'|'
'nr==fnr{a[$1]=$2}nr>fnr{if($1
in
a)print
$0,a[$1]}'
f1
f2
这样就可以了,
但是只限于这个特例,
如果第一列会有重复出现,
就有bug了。
或者在第二个文件的第一列中的数值在第一个文件中没有出现过,也会有bug

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网