awk学习实战

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 23:48 点击:

1、实例1
怎样的shell才能使file1、file2两个文件的$2不同的话,取出全局$0?
注意:比较两个文件的$2的时候,一定要第一列相同的情况下才比较
1.1、操作文件
# cat file1
00001       20
00002       31
00003       04
00004       56
00005       94
00006       73
00007       25
00008       86
00009       19
00010       52
 
# cat file2
00001       20
00007       28
00002       32
00004       56
00010       52
 
 1.2 实现命令
# paste file1 file2|awk '{if(($1=$3)&&($2!=$4)) {print $0}}'
00007 31 00007 28
00002 04 00002 32
00010 94 00010 52
其它:
 #cat file1 file2|sort |uniq –u
 
三楼的答案是错的,我要的结果是
00002 31  32
00007 25  28
sort file1 >f1;sort file2 >f2; join -j1 1 f1 f2|awk '$2 != $3'
or
sort file1 >f1;sort file2 >f2; join -1 1 -2 1 f1 f2|awk '$2 != $3'
 
 
2、实例2
#cat fawk.a
1       xiao                  25      beijing        9000
2       liuwenjing             24      beijing        5000
3       weijianjun             29      shanghai      8000
4       wanmingyang          28      beijing        5000
5       tianzhiyu              25      beijing        5500
6       zhouhaoxing           23      beijing        5000
 
2.1 显示$2等xiao或$2等于liu的全行
[root@store_2 awk]# awk '{ if(($2=="xiao")||($2=="liu")) print $0 }' fawk.a
 1       xiao                  25      beijing        9000
 
2.3 显示$2等xiao或$2包含liu的行
[root@store_2 awk]# awk '{ if(($2=="xiao")||($2~/liu/)) print $0 }' fawk.a
 1       xiao                  25      beijing        9000
 2       liuwenjing             24      beijing        5000
 
2.3 计算共显示了多少行NR
[root@store_2 awk]# awk '{ print $0 } END { print "总行数:" NR }' fawk.a
 1&n

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • /etc/fstab 详解
      • nginx主主集群
      •  LVS-NAT和LVS-DR模式的实现详解
      •  RHCE考试之磁盘配额
      • 学习笔记:ACL详解
      • suse linux双网卡双网关配置
      •  LVM逻辑卷管理器
      •  Nginx主主负载均衡架构
      • ubuntu学习Mysql

      快速直达

      操作系统导航

      LinuxWindows虚拟机
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1