Chinaunix

标题: 请教:两个CSV文件,想保持A一直是B的子集,应该怎么做呢? [打印本页]

作者: qooweds    时间: 2013-10-24 13:55
标题: 请教:两个CSV文件,想保持A一直是B的子集,应该怎么做呢?
A是配置文件用的表格,可能会删除一些列,也可能会增加一些列
B相当于是个A的备份,但是想要B包含A中删除过和增加过的列
例如:
A开始有1,2,3,4列,B也有1,2,3,4列
后来A删除了"3"列,增加了"5"列,即
A:1,2,4,5
我想保持B不仅不删掉A列,但是增加5列,即
B:1,2,3,4,5
应该怎么做呢?

我的笨办法目前是从A中取每一列在B中查找,如果没有就插入到B中
请问如果不用if判断,应该怎么实现呢?
作者: 关阴月飞    时间: 2013-10-24 18:04
目测这个是版本控制的菜
作者: jason680    时间: 2013-10-24 18:37
回复 1# qooweds

# grep "." A B
A:1,2,3,4
B:1,2,3,4

# awk -F"," '{for(n=0;n++<NF;){if(ARGIND==1){a[$n]=1;add=$0}else{if(a[$n]==""){add=add","$n}}}}END{print add > "B"}' B A

# cat B
1,2,3,4

# echo "1,2,4,5" > A

# awk -F"," '{for(n=0;n++<NF;){if(ARGIND==1){a[$n]=1;add=$0}else{if(a[$n]==""){add=add","$n}}}}END{print add > "B"}' B A

# cat B
1,2,3,4,5

   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2