文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Shell awk 请教

Shell awk 请教

时间:2006-09-29  来源:snowtty

killua 2003-9-11 08:08
 
awk 请教
下面是文件一,文件二
  $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的时候,一定要第一列相同的情况下才比较
请大虾执教 li2002 2003-9-11 08:57
 
awk 请教
不就是找出不同行吗?
cat file1 file2|sort |uniq -u
deathcult 2003-9-11 09:15
 
awk 请教
paste file1 file2|awk '{if(($1==$3)&&($2!=$4))print$0}' bjgirl 2003-9-11 09:38
 
awk 请教
[code]
#!/bin/ksh
sort -n file1>nf
sort -n file2>mf
paste nf mf|awk '$1=$3 {print}'|awk '$2!=$4 {print}'
rm nf mf
结果:
00002 31 00002 32
00004 04 00004 56
00007 56 00007 28
00010 94 00010 52
[/code]
killua 2003-9-11 10:05
 
awk 请教
回一楼,最近在学awk啦,而且你那样得到的数值是
00002 31
00002 32
00003 04
00005 94
00006 73
00007 25
00007 28
00008 86
00009 19
00010 52
00010 52
而我要的是
00002 31  32
00007 25  28
[quote][i]原帖由 "deathcult"]paste file1 file2|awk '{if(($1==$3)&&($2!=$4))print$0}'[/quote 发表:[/i]
二楼的没有数值哦,而且应该是paste file1 file2|awk '{if ($1 == $3 && $2 != $4) print $0}'
admirer 2003-9-12 00:27
 
awk 请教
[quote][i]原帖由 "killua" 发表:[/i]
二楼的没有数值哦,而且应该是paste file1 file2|awk '{if ($1 == $3 && $2 != $4) print $0}'[/quote]
你要什么样的输出?举例说明!
killua 2003-9-12 00:35
 
awk 请教
三楼的答案是错的,我要是结果是 [color=red]00002 31 32
00007 25 28
[/color]
把$1相同,而$2不同的列出来
admirer 2003-9-12 00:45
 
awk 请教
这不是一个简单的paste能解决的问题,而是一个以关键字连接的问题!
[code]sort file1 >f1;sort file2 >f2; join -j1 1 f1 f2|awk '$2 != $3'
00002 31 32
00007 25 28[/code]
killua 2003-9-12 03:30
 
awk 请教
拜谢楼上的 yoof 2003-9-12 17:25
 
awk 请教
join -j1 1 f1 f2  请版主解释 admirer 2003-9-12 23:32
 
awk 请教
[quote][i]原帖由 "yoof"]join -j1 1 f1 f2  请版主解释[/quote 发表:[/i] 以第一个文件的第一个域为索引键,连接f1,f2两个文件  
相关阅读 更多 +
排行榜 更多 +
Office转换器

Office转换器

商务办公 下载
牛杂网

牛杂网

购物比价 下载
极上红颜

极上红颜

角色扮演 下载