【问题标题】:merge files using cut and paste使用剪切和粘贴合并文件
【发布时间】:2013-05-28 14:44:53
【问题描述】:

我正在尝试将一些大文件粘贴在一起。我想用粘贴。所有数据都有相同的两列,我只想打印这两列一次。

例如

file1
h1 h2 i1
1 10 aa
2 20 bb
3 30 cc

file2
h1 h2 i2
1 10 xx
2 20 yy
3 30 zz

finaloutput
h1 h2 i1 i2
1 10 aa xx
2 20 bb yy
3 30 cc zz

我有大约 3000 个小文件需要像这样合并。我想知道是否有一种实用的方法可以做到这一点?我只能想到对每个文件使用 cut 并重命名它们

cut -f 3- myfile1 > myNewFile1
...
cut -f 3- myfile3000 > myNewFile3000

然后粘贴。

paste myNewFile* > FinalFile

我希望有一个更实用的解决方案?

【问题讨论】:

  • 试试cut -d' ' -f3 file2 | paste -d' ' file1 -

标签: unix merge paste cut


【解决方案1】:

使用join限制 - 只能加入一列):

join -1 1 -2 1 -o 1.1 1.2 1.3 2.3 file{1,2}

使用awk:

awk 'NR==FNR { a[$1" "$2]=$0 ; next } ($1" "$2 in a) { print a[$1" "$2],$3 }' file{1,2}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    • 2018-03-17
    相关资源
    最近更新 更多