微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 如何将file1的每一列追加到file2的特定字段并创建一个新的输出文件?

我想将文件1的每一列作为文件2的第4列附加并导出为新文件,其中包含来自文件1的列号或类似于输出名称的列号.

输入文件1和2具有相同的行数:

输入文件1有N列:

12 23 34  .....
33 34 23
67 09 34
45 67 34
65 76 44
64 33 96

输入文件2最初有5列

AA BB FF DD 6
AA CC HH NN 7
AA DD II RR 4
AA EE JJ PP 2
AA FF KK QQ 9
AA GG LL SS 8

例如,前3个输出文件如下所示:

输出文件1(第1列):

AA BB FF 12 DD 6
AA CC HH 33 NN 7
AA DD II 67 RR 4
AA EE JJ 45 PP 2
AA FF KK 65 QQ 9
AA GG LL 64 SS 8

输出文件2(第2列):

AA BB FF 23 DD 6
AA CC HH 34 NN 7
AA DD II 09 RR 4
AA EE JJ 67 PP 2
AA FF KK 76 QQ 9
AA GG LL 33 SS 8

输出文件3(第3列):

AA BB FF 34 DD 6
AA CC HH 23 NN 7
AA DD II 34 RR 4
AA EE JJ 34 PP 2
AA FF KK 44 QQ 9
AA GG LL 96 SS 8

文件名可以是file1,file2,file3 …或column1,column2,column3 ….或类似的东西.我怎么能实现这个目标呢? (用于循环,awk,粘贴等)

任何建议,将不胜感激.

@R_502_5620@:

如果您的列以制表符分隔,则可以轻松地从剪切和粘贴中获益:

for i in {1..N} ; do  # Insert the real N here, or change to $(seq 1 $N)
    cut -f1-3 input2 | \
        paste - \
              <(cut -f$i input1) \
              <(cut -f4- input2) \
        > output$i
done

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐