gpt4 book ai didi

linux - 如何使用 awk 测试列值是否在另一个文件中?

转载 作者:太空狗 更新时间:2023-10-29 11:42:49 26 4
gpt4 key购买 nike

我想做类似的事情

if ($2 in another file) { print $0 }

假设我有文件 A.txt 其中包含

aa
bb
cc

我有B.txt之类的

00,aa
11,bb
00,dd

我要打印

00,aa
11,bb

我如何在 awk 中测试它?我不熟悉一次处理两个文件的技巧。

最佳答案

你可以使用这样的东西:

awk -F, 'NR == FNR { a[$0]; next } $2 in a' A.txt B.txt

这会将 A.txt 中的每一行保存为数组 a 中的键,然后打印 B.txt 中第二个字段在数组中。

NR == FNR 是将传递给 awk 的第一个文件作为目标的标准方法,因为 NR(总记录数)仅等于 FNR (当前文件的记录号)为第一个文件。 next 跳到下一条记录,因此在第二个文件之前永远不会到达 a 部分中的 $2。








关于linux - 如何使用 awk 测试列值是否在另一个文件中?,我们在Stack Overflow上找到一个类似的问题:

https://stackoverflow.com/questions/35734197/




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