Bashで最初のスペースの右側にある文字を削除します。

Bashで最初のスペースの右側にある文字を削除します。
2492  some string continues here

に変換したいです。

2492

バッシュから。どうすればいいですか?

近いようですが動作しません。

var="2492  some string continues here  "
echo ${var%[[:space:]]*}

ベストアンサー1

使いたいスペースが複数あるので

${var%%[[:space:]]*}
# ...^^

削除最長スペースで始まる末尾の部分文字列

単にスペースを使用すると、%文字列の最後のスペースであるゼロ文字以上の文字が続く最短スペースシーケンスを削除できます。

$ echo ">$var<"; echo ">${var%[[:space:]]*}<"; echo ">${var%%[[:space:]]*}<"
>2492  some string continues here  <
>2492  some string continues here <
>2492<

ただ探しているなら最初の単語、次のようにすることができます。

read -r word rest_of_string <<<"$var"
echo "I have: $word"

IFS 変数を変更しなかったと仮定すると、先行スペースは処理されます。

おすすめ記事