首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >linux文件中两种最大模式之和

linux文件中两种最大模式之和
EN

Stack Overflow用户
提问于 2017-06-22 12:47:28
回答 5查看 57关注 0票数 0

我是linux的新手。命令需要帮助。我在linux中有具有以下值的文件:

代码语言:javascript
运行
复制
2-1
2-10
2-11
2-12
2-2
2-3
1-1
1-10
1-11
1-2
1-3
1-9

需要的输出是23。1-和2-模式的最大值之和,即1- 11 和2- 12 中的11

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-06-22 13:08:56

代码语言:javascript
运行
复制
awk -F"-" 'BEGIN{a=0; b=0;} {if(int($1)==1 && int($2)>a){a=int($2)}; if(int($1)==2 && int($2)>b){b=int($2)}}END{print a+b}' file

产出:

代码语言:javascript
运行
复制
23
票数 2
EN

Stack Overflow用户

发布于 2017-06-22 13:28:10

另一个使用awk运算符的ternary

代码语言:javascript
运行
复制
awk -v FS='-' '{m1=($1==1?(m1>$2?m1:$2):m1);m2=($1==2?(m2>$2?m2:$2):m2)}END{print m1+m2}' file
票数 1
EN

Stack Overflow用户

发布于 2017-06-22 14:09:14

排序+ awk管道:

代码语言:javascript
运行
复制
sort -t- -k2 -n file | awk -F'-' '{a[$1]=$2}END{ print a[1]+a[2] }'

产出:

代码语言:javascript
运行
复制
23
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44699855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档