根据模式合并两个文件

时间:2014-08-25 07:56:00

标签: linux awk

我想基于第一列合并几个文件

    File 1: 
    1
    10
    100
    1000
    1001
    10013
    10018
    1002

    File 2:
    100     TRUE
    1001    TRUE
    1041    TRUE
    1099    TRUE
    1213    TRUE
    1227    TRUE

    In this case the output would be:
    1
    10
    100      TRUE
    1000
    1001     TRUE
    10013
    10018
    1002

"不匹配"可以将这些行留空或使用" FALSE"。如果值更容易,也可以更改True和False!

我尝试了在其他帖子中找到的join命令和几个awk命令,但到目前为止没有任何工作。我有17个文件要加入,所以我一直在寻找简单的东西:)

关于如何让我入门的任何想法?

非常感谢你的帮助

2 个答案:

答案 0 :(得分:2)

你知道linux“join”命令:

$ join -a 1 f1 f2
1
10
100 TRUE
1000
1001 TRUE
10013
10018
1002

答案 1 :(得分:0)

嘿,我觉得我设法做到了(用一个凌乱的awk命令),万一有人需要它就行了:

    awk 'NR==FNR{a[$0]=$0;next}{a[$1]=$0}END{for (i in a) print a[i]}' file1 file2

是的,我很高兴!