【问题标题】:Compare 2 files with multiple columns | shell比较具有多列的 2 个文件 |壳
【发布时间】:2021-02-17 16:23:39
【问题描述】:

我有 2 个文件 fil1.txtfil2.txt

我的要求是比较两个文件的 column1column3,如果匹配,则检查 column2 值,如果 column2 值小于等于第二个文件的 column2 值,而不是将其从列表中删除并打印其余条目。

下面的例子-

fil1.txt有内容

abc 25 bcd
xyz 30 efg
pqr 25 qrs

fil2.txt有内容

abc 30 bcd
xyz 30 efg
rst 25 uvw
pqs 35 lmn

我的输出应该是

pqr 25 qrs

以下代码正在运行,但不确定如何比较 column2 值。

awk 'FNR==NR{a[$1,$3];next} !(($1,$3) in a)' fil1.txt fil2.txt

【问题讨论】:

    标签: bash shell awk


    【解决方案1】:

    你可以使用这个awk:

    awk 'FNR == NR {a[$1,$3] = $2; next} $2 > a[$1,$3]' file2 file1
    
    pqr 25 qrs
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多