gpt4 book ai didi

linux - 基于另一个 file_2 从 file_1 获取行

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:06:09 26 4
gpt4 key购买 nike

我有一个制表符分隔的文本文件,如下所示:

文件_1:

A1  13f  Jos  +
B1 zh4 Kia -
C2 nh2 Met -
D3 5gh Lox +
F4 w4t Nit -

文件_2

N3  6jg  Jut -
J8 76d Met +
A1 99g Kia -
M6 45k Qox +
V2 87h Nit -

我想从 file_1 中提取条目,其中第 3 列条目与 file_2 的第 3 列条目匹配,如下在 linux 中:

    B1  zh4  Kia -   
C2 nh2 Met -
F4 w4t Nit -

comm-12 file_1.txt file_2.txt 有帮助吗?请指导我

最佳答案

awk 在这里可能是最简单的(这保留了 file_1 输入顺序):

$ awk 'NR==FNR { seen[$3]++; next } seen[$3]' file_2 file_1

B1 zh4 Kia -
C2 nh2 Met -
F4 w4t Nit -
  • Pattern NR==FNR 仅匹配第一个输入文件 (file_2) 中的行,并构建所有第 3 列值与 action 的关联数组{ 看到[$3]++;下一步

    • seen[$3]++ 是构造包含一组唯一字段值的关联的常用习惯用法:访问键 $3(第 3 个字段的值)在数组 seen 中,在第一次访问时隐式创建该键的条目,后增量 ++ 为该条目提供一个非零值,该值计算在 bool 上下文中为真(下面讨论的模式利用了它)。
  • 由于上一个 Action 中的next,模式seen[$3] 仅针对第二个输入文件(file_1) 并且仅当第二个文件的第 3 列值也出现在第一个文件中时才计算为真。计算结果为 true 的模式隐式打印手边的行。

关于linux - 基于另一个 file_2 从 file_1 获取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40566638/

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