bash - 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 中实现这一目标?
解决方案
你可以使用这个awk
命令:
awk 'FNR == NR {num[$1]=$2; next} {
print (num[$1] < num[$2] ? $1 : $2)}' numbers.txt fruits.txt
nectarine
peach
grape
mango
推荐阅读
- python - Plotly Drop Downs,输入到函数
- c# - 发出工厂方法
- visual-studio - Visual Studio 将 :1 添加到标题
- atom-editor - 无法在 Atom 中安装 platformio-ide-terminal
- php - HTML 中的多语言 PHP 内联替换([en]...[/en] 等)
- kotlin - 如何“android 媒体播放器”(Kotlin)
- java - JAXB 将内存大小 XML 减少为 Object
- wso2 - 如何在容器环境中更改 WSO2 API Manager 3.1.0 中的日志级别?
- sql - 从开始日期到结束日期的每个日期的行
- html - 如何为特定文件夹编写异常