Chinaunix
标题:
求助:一个awk语句使用if应该如何改写。
[打印本页]
作者:
x-dongzi
时间:
2010-04-21 17:38
标题:
求助:一个awk语句使用if应该如何改写。
大家好。
我有两个文件A和B
其中A内容
111,111,111
222,222,222
333,333,333
444,444,444
555,555,555
复制代码
B内容
333,444,444
555,444,444
复制代码
我需要把B中第一列与A中第一列相对应的哪一行替换到A中去。也就是说,替换完之后
变成
111,111,111
222,222,222
333,444,444
444,444,444
555,444,444
复制代码
我已经写出了一个awk的命令来了,可以使用,不过还想能用if语句给写一下,因为感觉用if语句的话,比较好读一点,可是自己尝试写了一下,发现都不行,现在求教一下个人大侠,谢谢了。
下面是我写的,请问如何使用if来写呢?非常感谢。
awk -F"," 'NR==FNR{a[$1]=$0} NR>FNR&&a[$1]{print a[$1]} NR>FNR&&!a[$1]{print $0}' B A
复制代码
作者:
wtuter
时间:
2010-04-21 18:02
回复
1#
x-dongzi
[2]awk -F, 'NR==FNR{a[$1]=$0}NR!=FNR{if($1 in a)$0=a[$1];print $0}' 2 1
111,111,111
222,222,222
333,444,444
444,444,444
555,444,444
[2]
[2]
[2]cat 1
111,111,111
222,222,222
333,333,333
444,444,444
555,555,555
[2]
[2]
[2]cat 2
333,444,444
555,444,444
作者:
lkk2003rty
时间:
2010-04-21 18:08
回复
1#
x-dongzi
awk -F"," 'NR==FNR{a[$1]=$0}NR>FNR{if($1 in a) print a[$1];else print $0}' B A
复制代码
作者:
x-dongzi
时间:
2010-04-21 19:14
谢谢,谢谢大家。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2