首页 > 解决方案 > BASH 比较两个字段集成来自另一个文件的信息

问题描述

我有以下两个文本文件:

水果.txt

nectarine      strawberry
orange         peach
grape          apple
mango          watermelon

数字.txt

strawberry    57
apple         48
mango         40
peach         44
watermelon    60
nectarine     46
orange        72   
grape         39

在 fruits.txt 我想每行只保留 ​​2 个水果中的一个。删除的应该是对应数字较高的那个( cf numbers.txt)。输出如下所示:

nectarine
peach
grape
mango

我怎样才能在 bash 中实现这一目标?

标签: bashawksedhighest

解决方案


你可以使用这个awk命令:

awk 'FNR == NR {num[$1]=$2; next} {
print (num[$1] < num[$2] ? $1 : $2)}' numbers.txt fruits.txt

nectarine
peach
grape
mango

推荐阅读