gpt4 book ai didi

bash - 在 bash 中如何将 multimap 转换为 的 map

转载 作者:行者123 更新时间:2023-11-29 09:46:05 25 4
gpt4 key购买 nike

我正在用 bash 处理文件的输出,需要按键对值进行分组。

例如,我有

13,47099
13,54024
13,1
13,39956
13,0
17,126223
17,52782
17,4
17,62617
17,0
23,1022724
23,79958
23,80590
23,230
23,1
23,118224
23,0
23,1049
42,72470
42,80185
42,2
42,89199
42,0
54,70344
54,72824
54,1
54,62969
54,1

在一个文件中,将来自特定键的所有值分组到一行中,如下所示

13,47099,54024,1,39956,0
17,126223,52782,4,62617,0
23,1022724,79958,80590,230,1,118224,0,1049
42,72470,80185,2,89199,0
54,70344,72824,1,62969,1

我的输入文件中大约有 10000 个条目。我如何在 shell 中转换这些数据?

最佳答案

awk 助您一臂之力!

假设键是连续的...

$ awk -F, 'p!=$1 {if(a) print a; a=p=$1} 
{a=a FS $2}
END {print a}' file

13,47099,54024,1,39956,0
17,126223,52782,4,62617,0
23,1022724,79958,80590,230,1,118224,0,1049
42,72470,80185,2,89199,0
54,70344,72824,1,62969,1

关于bash - 在 bash 中如何将 multimap<K,V> 转换为 <K, {V1,V2}> 的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44380249/

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