gpt4 book ai didi

arrays - bash:将大括号处的文本文件拆分为数组

转载 作者:行者123 更新时间:2023-11-29 09:48:17 24 4
gpt4 key购买 nike

我非常彻底地搜索了网站,但没有找到合适的答案 - 很可能我没有问正确的问题。

我有一个包含多达几千行坐标的文本文件,其格式如下例所示:

[1]
-75.4532 75.8273
-115.00 64.5
-90.00 74.3333
-100.00 72.4167
-110.00 69.00
-120.8 56.284
[2]
-70.00 73.75
-100.00 69.3333
-110.00 65.1533
-90.00 71.5833
-80.00 73.00
[3]
-100.00 67.5
-67.7133 72.6611
-80.00 71.5
-90.00 70.00
-110.00 63.8667
-115.8 60.836

我想要实现的是将文件拆分为括号中数字的数组。这样我就可以使用括号中的数字作为数组索引,以下几行作为相应的值。

下一步将遍历数组,将每个元素提供给另一个程序。如果有更优雅的方法,我愿意倾听。

祝一切顺利!

最佳答案

您可以使用 sed 将文件修改为 bash 数组定义:

declare -a "$(sed 's/\[/" &/g; s/\]/&="/g' file | sed '1s/^"/arr=(/; $s/$/")/')"
echo "${arr[2]}"
echo
echo ${arr[2]}
-70.00 73.75 
-100.00 69.3333
-110.00 65.1533
-90.00 71.5833
-80.00 73.00

-70.00 73.75 -100.00 69.3333 -110.00 65.1533 -90.00 71.5833 -80.00 73.00

打印带引号和不带引号以证明区别

关于arrays - bash:将大括号处的文本文件拆分为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19840155/

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