我有一个字符串变量
$var="-- this is a --
-- comment --
hellow
world"
我需要将字符串字符串分成两部分,以便有两个新的字符串变量
$var1="-- this is a --
-- comment --"
$var2="hellow
world"
我需要新行,因为它在$ var1 $ var2
中我尝试了什么
var2=$(echo $var | sed 's/^--.*--//g')
我无法将模式存储在它正在删除的$ var1中。
注意:连字符很重要,新行很重要。 尝试过bash字符串操作,但它没有工作
答案 0 :(得分:0)
只需使用grep
var1
grep '\-\-.*\-\-'
var2
grep -v '\-\-.*\-\-'
如@ 123所示,如果我们在grep命令中使用--
,我们不需要转义。
所以你也可以使用它
var1
grep -- '--.*--'
var2
grep -v '--.*--'
答案 1 :(得分:0)
您问题中显示的$var
似乎包含新行,使您的$var
实际上包含4条不同的行。在这种情况下,您可以分割如下行:
$ var1=$(sed -n '1,2p' <<<"$var")
$ var2=$(sed -n '3,4p' <<<"$var")
$ var1获取$ var的第1行和第2行(如果你愿意,可以从文件中获取)
$ var2获取$ var的第3行和第4行(如果你愿意,可以从文件中获取)