【问题标题】:Merge two files in linux with different column合并linux中不同列的两个文件
【发布时间】:2012-06-24 23:39:07
【问题描述】:

我在 linux 中有两个文件,第一个文件有 4 列,第二个文件有 2 列。我想将这些文件合并到一个新文件中,该文件包含文件 1 的前 3 列和文件 2 的第一列。我尝试了 awk,但文件 2 中的数据放在文件 1 下。

【问题讨论】:

  • 如果您提供输入文件的示例以及迄今为止您尝试过的内容的描述,这将非常有帮助。

标签: bash sed awk


【解决方案1】:
paste file1 file2 | awk '{print $1,$2,$3,$5}'

【讨论】:

  • 使用awk '{print $1","$2","$3}' 表示逗号分隔值
【解决方案2】:

如果文件的行数相同,您可以执行以下操作:

awk '{ getline v < "file2"; split( v, a ); print a[2], $1, $3 }' file1

从文件 1 中打印第 1 列和第 3 列,从文件 2 中打印第 2 列。

【讨论】:

    【解决方案3】:

    不确定您想要从每个文件中获得哪些列,但这样的事情应该可以工作:

    paste <file1> <file2> | awk '{print $1,$2,$3,$5}'
    

    将从file1 中选取前三列,跳过第四列,然后从第二个文件中选取第一列。

    【讨论】:

      【解决方案4】:
      you can try this one without paste command:
      awk '{print $1}{print $2}{print $3}' file1 >> mergedfile
      awk '{print $2}' file2 >> mergedfile
      

      【讨论】:

        猜你喜欢
        • 2011-09-21
        • 2014-10-28
        • 1970-01-01
        • 2017-06-19
        • 2014-10-20
        • 2017-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多