0

我知道这与如何使用 sed 从字符串中去除前 X 个字符的问题非常相似?

但是我无法将输出字符串作为变量存储在我的 bash 脚本中

myString='Foo: 1234'
echo "$myString"| sed -r 's/^.{5}//'

产生所需的结果但它没有存储在变量中......当我尝试时:

myVariable1=$('"$myString"| sed -r 's/^.{5}//'')
myVariable2='"$myString"| sed -r 's/^.{5}//''
myVariable3=$(""$myString"| sed -r 's/^.{5}//'")
myVariable4=""$myString"| sed -r 's/^.{5}//'"

任何人都愿意告诉我我要去哪里错了

4

2 回答 2

2

为此,您不需要 sed。bash 可以做到。

$ myString='Foo: 1234'
$ myVar=${myString:5}
$ echo $myVar
1234
于 2013-07-21T12:56:21.773 回答
1

你可以只保留echo

myVar=$(echo "$myString"| sed -r 's/^.{5}//')

或使用此处的字符串:

myVar=$(sed -r 's/^.{5}//' <<<"$myString")
于 2013-07-21T12:29:47.377 回答