当前位置: 首页 > 面试题库 >

Linux按列合并两个文件

陆子默
2023-03-14
问题内容

我正在尝试合并以下两个文件(交集)

ID     Name  Telephone       
1      John     011
2      Sam      013
3      Jena     014
4      Peter    015

第二个文件Test2.txt

1       Test1    Test2
2       Test3    Test4
3       Test5    Test6
4       Test7    Test8
5       Test7    Test8
6       Test7    Test8
7       Test7    Test8
8       Test7    Test8
9       Test7    Test8

然后最终结果

ID     Name  Telephone    Remark1  Remark2
1      John    011        Test1    Test2
2      Sam     013        Test3    Test4
3      Jena    014        Test5    Test6
4      Peter   015        Test7    Test8

我确实如下所示

awk -F"\t" '
    {key = $1 }
    NR == 1 {header = key}
    !(key in result) {result[key] = $0; next}
    { for (i=2; i <= NF; i++) result[key] = result[key] FS $i }
    END {
        print result[header]
        delete result[header]
        PROCINFO["sorted_in"] = "@ind_str_asc"    
        for (key in result) print result[key]
    }
' Test1.txt Test2.txt > result.txt

我只是注意到这是联盟设置的。包括所有数据Test1和Test2。

我只希望对Intersection案例显示我期望的结果。仅(1,2,3,4)

你们有什么主意吗?谢谢!


问题答案:
$ awk -v OFS='\t' '
NR==1   { print $0, "Remark1", "Remark2"; next }
NR==FNR { a[$1]=$0; next }
$1 in a { print a[$1], $2, $3 }
' Test1.txt Test2.txt
ID     Name  Telephone  Remark1 Remark2
1      John     011     Test1   Test2
2      Sam      013     Test3   Test4
3      Jena     014     Test5   Test6
4      Peter    015     Test7   Test8


 类似资料:
  • rank ▲ ✰ vote url 65 357 50 683 url 合并两个列表 怎样合并两个列表? 例如: listone = [1,2,3] listtwo = [4,5,6] 我期待: mergedlist == [1, 2, 3, 4, 5, 6] 在Python中非常容易. mergedlist = listone + listtwo

  • 本文向大家介绍Linux使用join -a1来合并两个文件,包括了Linux使用join -a1来合并两个文件的使用技巧和注意事项,需要的朋友参考一下 要合并以下两个文件,一起合并在一起,合并到1.txt中 合并的后的1.txt Jerry 20 man Alice 30 woman David 40 上面的文件特点是有相同的,则合并,第二列缺少内容的。这个时候使用join -a1 1.txt 2

  • 在索引上合并是不好的做法吗?不可能吗?如果是,如何将索引转换为名为“index”的新列?

  • 问题内容: 我想通过unix中的一列合并两个文件。 我有file_a: 我还有另一个file_b: 我想在命令行中合并这些文件。我想按主题合并文件a和b。由于每个文件的长度约为200万行,因此我在R中进行了尝试,但由于数据量而冻结,有人可以帮助我在Linux中进行此操作吗?所需的输出: 请帮忙,谢谢! 问题答案: 结帐。就您而言,您甚至不需要任何标志:

  • 问题内容: 我有以下数据框: 如何合并索引以获取: 我问,因为据我了解,即使用列进行匹配。实际上,这样做我得到: 在索引上合并是不好的做法吗?不可能吗 如果是这样,如何将索引移到称为“索引”的新列中? 问题答案: 使用,默认情况下是内部联接: 或,默认情况下为左连接: 或,默认情况下为外部联接: 样品 :

  • 我有两个xml文件,需要将它们合并为一个xml。以下是示例: orginal.xml文件: 使现代化xml文件: 它们应合并为如下xml文件: 实际上,我想使用更新。xml来更新原始。xml: > update.xml中的新员工应该被添加到original.xml 在更新中修改了员工信息。xml应覆盖相应的员工节点。 我对XSLT略知一二,但我的知识还不足以找出适合合并的XSLT。