如何获得UNIX文件中文本的最大值,如下所示?

如何获得UNIX文件中文本的最大值,如下所示?,unix,Unix,我有一个包含以下内容的unix文件 $cat myfile.txt abc:1 abc:2 hello:3 hello:6 wonderful:1 hai:2 hai:4 hai:8 如何获得上面文件中每个文本的最大值 “abc”值2 “你好”值6 “hai”值8 “womderful”1基于您问题中的当前示例,减去预期输出的第一行: awk -F':' '{arr[$1]=$2 ; next} END {for (i in arr) {print i, arr[i]} } ' inputfi

我有一个包含以下内容的unix文件

$cat myfile.txt
abc:1
abc:2
hello:3
hello:6
wonderful:1
hai:2
hai:4
hai:8
如何获得上面文件中每个文本的最大值

“abc”值2 “你好”值6 “hai”值8
“womderful”1

基于您问题中的当前示例,减去预期输出的第一行:

awk -F':' '{arr[$1]=$2 ; next} END {for (i in arr) {print i, arr[i]} } ' inputfile
您的示例输入和预期输出非常混乱。。。。我发布这篇文章的原因是为了从即将到来的OP获得反馈

这假定数据未排序,但也适用于已排序的数据(新):


我有点搞不清楚你要算哪一个。每个单词的总和?一个单词的最后一次出现?您能解释一下吗?同意,不清楚值
abc 1
是否来自于您的输入有两行与abc匹配,第二行是
abc 2
,而
hello 6
的输出是选择hello的第二行。你的标题是“在分隔符后提取数字”,我看不到这种情况。请澄清。祝你好运。我已经编辑了这个问题。对不起,把你弄糊涂了:)
sort -t: -k2n inputfile | awk -F':' '{arr[$1]=$2 ; next} END {for (i in arr) {print i, arr[i]} } '