我有两个这样的文件,file2用制表符分隔:
文件1
A
B
E
文件2
ID value
A 1
B 2
C 3
D 4
E 5
F 6
GA 7
HB 10
I 11
如果 id 存在于 file1 中,我想用 0 替换第二列的值,如下所示
ID value
A 0
B 0
C 3
D 4
E 0
F 6
GA 7
HB 10
I 11
我写了一段非常愚蠢的代码
for i in `cat file1`;do sed -i 's/\<'"$i"'\>/'"$i"'\t0/g' file2;done
less -S file2 | awk '{print $1,"\t",$2}' | sed 's/ //g' > finalfile
任何流畅的代码都可以像 awk 那样被替换?欣赏它。
答案1
与 一起完成所有工作awk
。
awk -v OFS='\t' '
NR==FNR{ Ids[$1]; next }
{ print $1, ($1 in Ids?0:$2) }
' file1 file2