统计
下面的命令计算所有的C文件,CPP文件和H文件的文件大小总和。
$
ls
-l *.cpp *.c *.h |
awk
'{sum+=$5} END {print sum}'
2511401
我们再来看一个统计各个connection状态的用法:(我们可以看到一些编程的影子了,大家都是程序员我就不解释了。注意其中的数组的用法)
$
awk
'NR!=1{a[$6]++;} END {for (i in a) print i ", " a[i];}'
netstat
.txt
TIME_WAIT, 3
FIN_WAIT1, 1
ESTABLISHED, 6
FIN_WAIT2, 3
LAST_ACK, 1
LISTEN, 4
再来看看统计每个用户的进程的占了多少内存(注:sum的RSS那一列)
$
ps
aux |
awk
'NR!=1{a[$1]+=$6;} END { for(i in a) print i ", " a[i]"KB";}'
dbus, 540KB
mysql, 99928KB
www, 3264924KB
root, 63644KB
hchen, 6020KB
#从file文件中找出长度大于80的行
awk
'length>80'
file
#按连接数查看客户端IP
netstat
-ntu |
awk
'{print $5}'
|
cut
-d: -f1 |
sort
|
uniq
-c |
sort
-nr
#打印99乘法表
seq
9 |
sed
'H;g'
|
awk
-
v
RS=
''
'{for(i=1;i<=NF;i++)printf("%dx%d=%d%s", i, NR, i*NR, i==NR?"
":" ")}'