awk-sort-join 命令杂记

统计含有Amie字样的程序,打印出ps id, 倒数第二列 (此处为端口), 最后一列:
ps aux | grep Amie | grep -v grep | awk '{print $2" " $(NF-1)" " $NF}'
统计一共有多少个用户 (count 为自定义变量, 会被默认初始化为0. 不过最好自己初始化一下):
awk -F: '{count++;print $0} END {print count}' /etc/passwd
更优雅的方式:
awk -F: 'BEGIN {count=0} {count++} END {print count}' /etc/passwd
计算某个文件夹下面的总大小
ls -l | awk 'BEGIN {count=0;} {count = count + $5} END {print count}'
过滤掉文件夹
ls -l | awk 'BEGIN {count=0;} {if($5!=4096){count += $5}} END {print count}'
 
处理nginx 的access 日志, 计算每个ip 的访问次数:
awk '{print $1}' ./access.log | sort | uniq -c | sort -nr
uniq -c 表示将sort完的结果去重, 并统计每个重复的次数
 
下面是关于sort 命令:
sort的-n选项 你有没有遇到过10比2小的情况。出现这种情况是由于排序程序将这些数字按字符来排序了,排序程序会先比较1和2,显然1小,所以就将10放在2前面喽。这也是sort的一贯作风。 我们如果想改变这种现状,就要使用-n选项,来告诉sort,“要以数值来排序”
$ cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4
sort提供了-t选项,后面可以设定间隔符。
指定了间隔符之后,就可以用-k来指定列数了。
$ sort -n -k 2 -t :  a.txt
输出该行重复的次数 #sort testfile | uniq -c
1 friend
3 hello
2 world
 
 Join 命令
file1:
2 11111 2 22222 1 33333 1 44444 1 55555
 
file2 :
11111 bj 22222 hb 33333 hn 44444 nm 55555 xm 66666 mk
# join -1 2 -2 1 file1 file2 :
11111 2 bj 22222 2 hb 33333 1 hn 44444 1 nm 55555 1 xm
将第一个文件的第二列和第二个文件的第一列进行join
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值