【发布时间】:2014-09-17 09:52:51
【问题描述】:
我有下面给出的字符串。每个键之间没有特定的分隔符。唯一的方法是识别键是使用关键字“key_1”或“key_2”等。
所有键都以“key_”开头,并且永远不能出现在另一个值中:
STRING="key_1=mislanious_string1 key_2=miscellaneous_string2"
我想要如下的输出。
echo $STRING1 应该打印:
key_1=mislanious_string1
echo $STRING2 应该打印:
key_2=mislanious_string2
例如: 如果 STRING="key_1=foobarzkey_2=bash" ,则输出应类似于 STRING1=key_1=foobarz 和 STRING2=key_2=bash。
可能有更多的键,如 key_1 、 key_2 、 key_3 等。每个键都以“key_”开头,并且永远不能出现在另一个键的值中:
如何在 UNIX bash shell 中做到这一点?
【问题讨论】:
-
如何在不知道分隔符的情况下识别键的开始位置?
-
"key_" 关键字来识别每个键。
-
“每个键之间没有特定的分隔符”是什么意思?有空位吗?
-
STRING="key_1=foobarzkey_2=bash"。这是对key_1的一项分配还是对key_1和key_2的单独分配?如果z是分隔符,则为第二个,否则为第一个。 -
请用您分散在各地的 cmets 的所有修正更新您的问题。您并没有在发布的问题中向人们提供完整的图片,人们不应该通过搜索 cmets 来弄清楚您真正想要做什么。