击:分割(多)字符串到数组与multichar分隔符
我有以下的文件,并调用cat myfile | ./myscript.sh
:击:分割(多)字符串到数组与multichar分隔符
(Item)
(Values)
blabla
blabla
(StopValues)
(Item)
(Values)
hello
hello
(StopValues)
在我的剧本,我从猫管道的内容保存到一个变量:s=$(cat)
我怎样才能拆分此字符串具有(在本例的情况下)含有2个变量现在的阵列,一个说
(Item)
(Values)
blabla
blabla
(StopValues)
另一个说
(Item)
(Values)
hello
hello
(StopValues)
假设源字符串是在变量s
,以下bash脚本将填充数组变量a
要求:
a=()
i=0
while read -r line
do
a[i]="${a[i]}${line}"$'\n'
if [ "$line" == "(StopValues)" ]
then
let ++i
fi
done <<< "$s"
数组中的一个元素只包含一行,例如, “blabla”,我宁愿将“整个部分”放在一个元素中,就像问题 – RandomDisplayName
@RandomDisplayName中所描述的那样您是否尝试运行代码或者判断它没有运行? – Leon
我试过了,虽然这可能会导致这种情况发生,但我有一个文件中的内容并将其传递给我的脚本,我更新了我的问题 – RandomDisplayName
不是一个确切的重复,因为你没有提有关数组的东西,但我这个问题的答案可能会给你一些想法:https://*.com/questions/14630940/split-string-into-array-in-bash – user000001
@ user000001除了一般的困惑,我看到的是在他的字符串中,他总是有他想要删除的字符(可以用作分隔符,例如'======= '或'/')我没有任何东西应该从我的字符串中删除 – RandomDisplayName