LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 915|回复: 3

awk 请教

[复制链接]
发表于 2003-9-11 17:08:01 | 显示全部楼层 |阅读模式
下面是文件一,文件二
$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

怎样的shell才能使file1、file2两个文件的$2不同的话,取出全局$0?
注意:比较两个文件的$2的时候,一定要第一列相同的情况下才比较
发表于 2003-9-11 17:49:24 | 显示全部楼层
  1. sort file1>f1;sort file2>f2;paste f1 f2|awk '$1=$3 {print}'|awk '$2!=$4 {print}';rm f1 f2
复制代码
发表于 2003-9-11 19:58:43 | 显示全部楼层
看了你在CU上发的帖子,研究了一下,这样:
  1. [/home/javalee/myshell]cat myfile
  2. #!/bin/ksh
  3. for i in $(cat file2)
  4. do
  5.         cat file1|sed -n /${i}/p
  6. done|sort|uniq -u>tmp$$
  7.        
  8. for j in $(cat tmp$$)
  9. do
  10.         cat file2|sed -n /${j}/p
  11. done>ntmp$$
  12. paste tmp$$ ntmp$$|awk '{print $1,$2,$4}'
  13. rm tmp$$ ntmp$$
  14. [/home/javalee/myshell]
  15. [/home/javalee/myshell]myfile
  16. 00002 31 32
  17. 00007 25 28
  18. [/home/javalee/myshell]
复制代码
 楼主| 发表于 2003-9-12 09:24:44 | 显示全部楼层

谢版主呀

done>ntmp$$
还有在for语句后面输出的呀,头一次见,呵呵

这个shell在bash下也可以用哦

哎,俺只用过bash  -_-b
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表