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两个文件
阅读(3086) | 评论(0) | 转发(0) |