gpt4 book ai didi

bash - 使用 sed 或 awk 对输出数据进行分组

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

我正在尝试将平面文件数据库 filename=iplocationdata 重新组合成多个部分。

这个文件经常更新,它包含几千行,所以我想找到一个聪明的解决方案来编写输出脚本。

我得到的是这样的:

NA
10.0.0.0/16
Dallas1
NA
10.1.0.0/16
Houston1
EMEA
10.2.0.0/16
Paris1
EMEA
10.3.0.0/16
London1
APAC
10.4.0.0/16
Hong-Kong1
APAC
10.5.0.0/16
Shanghai1

我需要两个不同的输出

第一个我用这个解决了:

awk 'NR%3{printf $0" ";next;}1' iplocationdata

NA, 10.0.0.0/16, Dallas1
NA, 10.1.0.0/16, Houston1
EMEA, 10.2.0.0/16, Paris1
EMEA, 10.3.0.0/16, London1
APAC, 10.4.0.0/16, Hong-Kong1
APAC, 10.5.0.0/16, Shanghai1

第二个列表,我希望它看起来像这样:

NA
10.0.0.0/16, Dallas1
10.1.0.0/16, Houston1
EMEA
10.2.0.0/16, Paris1
10.3.0.0/16, London1
APAC
10.4.0.0/16, Hong-Kong1
10.5.0.0/16, Shanghai1

这个我一直没能解决。如果可能的话,我更喜欢一个类轮,有人对此有好的解决方案吗?

最佳答案

编辑:添加了缺少的

$ awk '$1==p{next} NR%3==1{print; p=$1} NR%3==2{printf "%s, ",$0} NR%3==0' s.txt

NA
10.0.0.0/16, Dallas1
10.1.0.0/16, Houston1
EMEA
10.2.0.0/16, Paris1
10.3.0.0/16, London1
APAC
10.4.0.0/16, Hong-Kong1
10.5.0.0/16, Shanghai1

关于bash - 使用 sed 或 awk 对输出数据进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35090079/

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