gpt4 book ai didi

bash - 比较两个文件中的值

转载 作者:行者123 更新时间:2023-11-29 09:37:02 25 4
gpt4 key购买 nike

我正在比较两个文件,每个文件都有一列和 n 行。

文件 1

文西
亚历克斯
知更鸟

文件 2

艾伦
亚历克斯
亚伦
拉尔夫
知更鸟

如果文件 1 的数据出现在文件 2 中,它应该在制表符分隔的文件中返回 1 或 0。

像这样

文西0
亚历克斯 1
知更鸟 1

我在做的是

#!/bin/bash
for i in `cat file1 `
do
cat file2 | awk '{ if ($1=="'$i'") print 1 ; else print 0 }'>>binary
done

上面的代码没有给出我正在寻找的输出。

请看一下并提出更正意见。

谢谢

最佳答案

简单的 awk 解决方案:

awk 'NR==FNR{ seen[$0]=1 } NR!=FNR{ print $0 " " seen[$0] + 0}' file2 file1

简单解释:对于file2中的行,NR==FNR,所以执行第一个action,我们简单记录下看到了一行。在 file1 中,执行第二个操作并打印该行,后跟一个空格,然后是“0”或“1”,具体取决于该行是否在 file2 中出现。

关于bash - 比较两个文件中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10754788/

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