我有一个这样的文件: -
123,Bob
456,Joe
789,Jane
这样的文件
456,abc,Red
789,def,Yellow
我想将第3列从文件2添加到文件1,但仅限于第一列匹配的位置,最后是这样的结果: -
123,Bob
456,Joe,Red
789,Jane,Yellow
我在Cygwin命令行上有任何可用的工具来执行此操作,例如: awk,paste等。
答案 0 :(得分:6)
如果你有粘贴,你也应该有为这种事情设计的连接。假设输入文件按键排序,您可以说:
join -t, in1 in2
输出:
456,Joe,Red
789,Jane,Yellow
您可以使用-o
开关:
join -t, -o 1.1,1.2,2.3 in1 in2
您似乎想要保留第一个文件中的不成对行,在这种情况下使用-a1
:
join -t, -o 1.1,1.2,2.3 -a1 in1 in2
输出:
123,Bob,
456,Joe,Red
789,Jane,Yellow
这会在未配对的行末尾留下无关的逗号,但可以使用| sed 's/,$//'
删除。