我有一个包含这样内容的变量
第1行
第2行
第3行
======
第4行
第5行
第6行
======
.........
第n行
======
现在我想在所有出现之前提取线条======'模式,我想将它分配给每个变量
预期产量
Var1 =第1行第2行第3行
Var2 =第4行第5行第6行
...........
Var_n =行n
也可以接受将其存储在阵列中
怎么做?
答案 0 :(得分:3)
您可以像
一样使用参数扩展str="mystring:yourstring" //here assume ":" is pattern
var=${str%:*}
echo $var
有关您的信息,您可以使用#
代替%
获取格式后的字符串
var=${str#*:}
答案 1 :(得分:3)
#!/bin/bash
# original string
str="some lines1 ====== some lines2 ======"
# parse the string
v1="${str%% =*}" # beginning at right, remove all to ' ='
tmp="${str% =*}" # beginning at right, remove first occurrence of ' =*'
v2="${tmp##*= }" # beginning at left, remove all to '= '
# print the string and variable
echo "str: $str"
echo " v1: $v1"
echo " v2: $v2"
exit 0
输出:
$ bash somelines.sh
str: some lines1 ====== some lines2 ======
v1: some lines1
v2: some lines2