需要比较两个文件并打印所有列,然后缺少显示为 NA,然后加入另一个文件

需要比较两个文件并打印所有列,然后缺少显示为 NA,然后加入另一个文件

文件一:

123, 234
345, 789
678, 900

文件2

123, abc
345, dnc

输出(文件 1 中的所有列和文件 2 中的缺失值均为 NA):

123,234,abc
345,789,dnc
678,900,NA

输出文件
与另一个文件添加

文件3

123, 2014/10/20
678, 2013/02/30

输出文件

123,234,abc,2014/10/20
345,789,dnc,NA
678,900,NA,2013/02/30

有这样 10 个文件,我需要添加到第一个文件中

答案1

如果您有许多输入文件并且必须重复过程,简化此任务的一种方法是定义一个函数:

myjoin () {
join -t, -a 1 -a 2 -j 1 -e ' NA' -o auto $1 $2 ; }

然后使用进程替换<()来调用它

myjoin <(myjoin file1 file2) file3

结果:

123, 234, abc, 2014/10/20
345, 789, dnc, NA
678, 900, NA, 2013/02/30

我这里用过cuonglm 答案根据您之前的 join 问题,您当然可以将此方法与任何其他“单一”解决方案一起使用。

相关内容