gpt4 book ai didi

linux - 用于比较列中数字的 Bash 脚本

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:59:07 25 4
gpt4 key购买 nike

我在编写 bash 脚本时遇到问题,希望有人能帮助我解决这个问题。我以前用 bash 编写过一些较小的脚本,所以我不是全新的,但仍有很多改进的空间。

所以,我有一个只包含两列十进制数字的文件,例如:

0.46    0.68
0.92 1.36
1.38 2.04
1.84 2.72
2.3 3.4
2.76 4.08
3.22 4.76
3.68 5.44
4.14 6.12
...

我想做的是将第一列中的每个数字与第二列中的每个数字进行比较,并检查是否有任何两个数字相等,然后将此数字打印到屏幕或文件中。

我在 excel 表中找到了如何执行此操作的答案,但我对如何在 bash 或 awk 中执行此操作非常感兴趣。

对我来说,第一个问题是我什至不知道如何将第一个数字与第二列中的所有其他数字进行比较。我想我必须通过数组来做到这一点。我可以通过“while read var_1 var_2”命令读取这两个数字,然后我必须以某种方式将每一行的 var_1 添加到 array_1,对于另一个 array_2 的 var_2 也是如此,然后我必须以某种方式将所有元素与每个元素进行比较其他。

但是我不知道怎么办。我希望有一个人可以帮助我。

最佳答案

使用 awk

awk 'FNR==NR {a[$1]++;next} ($2 in a) {print $2}' file file
4.08
1.38

读取文件并将第 1 列存储在数组 a 中,然后将第 2 列与数组 a 进行比较

cat file
0.46 0.68
0.92 1.36
1.38 2.04
1.84 2.72
2.3 3.4
2.76 4.08
3.22 4.76
3.68 5.44
4.14 6.12
4.08 1.38

关于linux - 用于比较列中数字的 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21138729/

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