次の行から整数を抽出しようとしています。
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