一个字符一个字符地获取字符串

我有一个这样的字符串:

 GenFiltEff=7.092200e-01

Using bash, I would like to just get the number after the = character. Is there a way to do this?

250714 次浏览

这应该会奏效:

your_str='GenFiltEff=7.092200e-01'
echo $your_str | cut -d "=" -f2

对于第一个 =之后的文本和第二个 =之前的文本

cut -d "=" -f2 <<< "$your_str"

或者

sed -e 's#.*=\(\)#\1#' <<< "$your_str"

对于第一个 =之后的所有文本,不管是否有多个 =

cut -d "=" -f2- <<< "$your_str"
${word:$(expr index "$word" "="):1}

假设你指的是字符串的整个其余部分,只要省略 :1

echo "GenFiltEff=7.092200e-01" | cut -d "=" -f2

如果值已存储在变量中,则使用参数展开。

$ str="GenFiltEff=7.092200e-01"
$ value=${str#*=}

或者使用 read

$ IFS="=" read name value <<< "GenFiltEff=7.092200e-01"

不管怎样,

$ echo $value
7.092200e-01