105

次のような文字列があります。

 GenFiltEff=7.092200e-01

=bash を使用して、文字の後に数字を取得したいと思います。これを行う方法はありますか?

4

5 に答える 5

138

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
于 2013-03-01T02:09:27.733 に答える
113

=最初の後と次の前のテキストの場合=

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

また

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

=複数あるかどうかに関係なく、最初のテキスト以降のすべてのテキスト=

cut -d "=" -f2- <<< "$your_str"
于 2013-03-01T01:21:05.430 に答える
20
echo "GenFiltEff=7.092200e-01" | cut -d "=" -f2 
于 2013-03-01T01:26:51.337 に答える
5
${word:$(expr index "$word" "="):1}

を取得し7ます。文字列の残り全体を意味すると仮定すると、:1.

于 2013-03-01T01:23:00.107 に答える
4

これはうまくいくはずです:

your_str='GenFiltEff=7.092200e-01'
echo $your_str | cut -d "=" -f2
于 2013-03-01T01:19:51.547 に答える