【发布时间】:2015-04-15 13:31:20
【问题描述】:
我的 bash 脚本有问题。
我会将一个字符串拆分为一个(索引命名的)数组:
字符串可以有这个值:status=online clients=5 name=Server
字符串也可以有几个命令有这样的(这是有问题的):
status=online clients=5 name=Server|status=offline clients=0 name=Server_2
第一个问题:如果这个“|”,我该如何拆分,或者我应该检查一下存在吗?
第二个问题:我现在必须将这些值拆分为一个命名数组,例如来自字符串:status=online clients=5 name=Server,该数组看起来像:
[status] = [online]
[clients] = [5]
[name] = [Server]
如果分隔符“|”存在,我必须在 2 个(或更多)数组中得到结果:
$mainarray [0]
[status] = [online]
[clients] = [5]
[name] = [Server]
$mainarray [1]
[status] = [offline]
[clients] = [0]
[name] = [Server2]
例如,使用echo $mainarray[0][status] 我会“在线”。
有可能吗?
【问题讨论】:
-
bash根本不能很好地处理嵌套数组。 (这并非不可能,但它强烈表明您应该使用不同的语言。) -
拥有这些拆分记录后,您需要如何处理它们?
-
@EtanReisner 评估和/或比较结果,我认为数组是最好的解决方案......
-
你能说得更具体点吗?您是否有需要参与的外部工具?与外部数据的比较还是内部数据?如果分析只是内部的,
awk脚本可能是一个解决方案。数组是正确的想法,但bash可能不是。