gpt4 book ai didi

linux - 比较一个字段,如果另一字段的值更大,则删除重复项

转载 作者:太空宇宙 更新时间:2023-11-04 04:47:11 24 4
gpt4 key购买 nike

尝试在 Linux 命令行中执行此操作。想要合并两个文件,根据 ID 比较值,但只保留具有较新/较大日期值的 ID(编辑:等于或大于)。由于 ID 456604 位于两个文件中,因此只想保留文件 2 中日期较新的 ID:“20111015 456604 tgf”

文件1

Date     ID     Note
20101009 456604 abc
20101009 444444 abc
20101009 555555 abc
20101009 666666 xyz

文件2

Date     ID     Note
20111015 111111 abc
20111015 222222 abc
20111015 333333 xyz
20111015 456604 tgf

然后输出将两个文件合并,但仅保留第二个 ID 值和较新的日期。行的顺序并不重要,只是概念输出的示例。

输出

Date     ID     Note
20101009 444444 abc
20101009 555555 abc
20101009 666666 xyz
20111015 111111 abc
20111015 222222 abc
20111015 333333 xyz
20111015 456604 tgf

最佳答案

$ cat file1.txt file2.txt | sort -ru | awk '!($2 in seen) { print; seen[$2] }'

Date ID Note
20111015 456604 tgf
20111015 333333 xyz
20111015 222222 abc
20111015 111111 abc
20101009 666666 xyz
20101009 555555 abc
20101009 444444 abc

按日期降序对合并的文件进行排序,并且仅在第一次看到 ID 时打印一行。

编辑

更紧凑的版本,感谢史蒂夫:

cat file1.txt file2.txt | sort -ru | awk '!seen[$2]++'

关于linux - 比较一个字段,如果另一字段的值更大,则删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27697755/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com