次のような文字列があります。
GenFiltEff=7.092200e-01
=
bash を使用して、文字の後に数字を取得したいと思います。これを行う方法はありますか?
Use parameter expansion, if the value is already stored in a variable.
$ str="GenFiltEff=7.092200e-01"
$ value=${str#*=}
Or use read
$ IFS="=" read name value <<< "GenFiltEff=7.092200e-01"
Either way,
$ 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