我有一个看起来像这样的字符串:
GenFiltEff=7.092200e-01
使用 bash,我只想获取=
字符后面的数字。有没有办法做到这一点?
如果值已存储在变量中,则使用参数扩展。
$ str="GenFiltEff=7.092200e-01"
$ value=${str#*=}
或使用read
$ IFS="=" read name value <<< "GenFiltEff=7.092200e-01"
无论哪种方式,
$ echo $value
7.092200e-01
对于第一个之后=
和下一个之前的文本=
cut -d "=" -f2 <<< "$your_str"
或者
sed -e 's#.*=\(\)#\1#' <<< "$your_str"
对于第一个之后的所有文本,=
无论是否有多个=
cut -d "=" -f2- <<< "$your_str"
echo "GenFiltEff=7.092200e-01" | cut -d "=" -f2
${word:$(expr index "$word" "="):1}
得到7
. 假设您的意思是整个字符串的其余部分,只需去掉:1
.
这应该有效:
your_str='GenFiltEff=7.092200e-01'
echo $your_str | cut -d "=" -f2