击:分割(多)字符串到数组与multichar分隔符

击:分割(多)字符串到数组与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) 
+0

不是一个确切的重复,因为你没有提有关数组的东西,但我这个问题的答案可能会给你一些想法:https://*.com/questions/14630940/split-string-into-array-in-bash – user000001

+0

@ user000001除了一般的困惑,我看到的是在他的字符串中,他总是有他想要删除的字符(可以用作分隔符,例如'======= '或'/')我没有任何东西应该从我的字符串中删除 – RandomDisplayName

假设源字符串是在变量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" 
+0

数组中的一个元素只包含一行,例如, “blabla”,我宁愿将“整个部分”放在一个元素中,就像问题 – RandomDisplayName

+0

@RandomDisplayName中所描述的那样您是否尝试运行代码或者判断它没有运行? – Leon

+0

我试过了,虽然这可能会导致这种情况发生,但我有一个文件中的内容并将其传递给我的脚本,我更新了我的问题 – RandomDisplayName