1行から2つの整数を抽出し、別々の変数に代入

1行から2つの整数を抽出し、別々の変数に代入

次の行から整数を抽出しようとしています。

Result: 23/200

23各整数(sum)を別々の変数に割り当てたいのですが、200方法がわかりません。私はここまで来ました:

echo "Result: 23/200." | grep -o -E '[0-9]+'

出力は次のとおりです。

23
200

1行目または2行目をパイプで接続またはインポートすることhead -1もできます。tail -1しかし、私はこれら2つを救出し、他の変数に割り当てる正しい魔法を見つけることができませんでした。

ファイルにパイプしてからそのファイルから読み取る唯一のオプションはありますか?私が今期待しているのはまさにそれだ。

答え1

その行に他のテキストがないことがわかっている場合

IFS=' /' read -r result first second <<<"$line"

declare -p first second

出力

declare -- first="23"
declare -- second="200"

行に他のテキストがどれだけあるかわからない場合は、正規表現を使用してください。

if [[ $line =~ ([0-9]+)/([0-9]+) ]]; then
    first=${BASH_REMATCH[1]}
    second=${BASH_REMATCH[2]}
fi

答え2

Bashでは、次のように動作します。

{ read aa; read bb; } < <(echo "Result: 23/200." | grep -o -E '[0-9]+')

すると、echo aa=$aa bb=$bb.予想した結果が出ます。

関連情報