文字列変数から2番目の単語を抽出する

文字列変数から2番目の単語を抽出する

"rtcpOnNbActive true"変数に文字列が格納されていますx。 「true」を部分文字列として抽出して変数に保存したいと思います。どうすればいいですか?

答え1

次の方法を試してください。

y=$(echo $x | awk '{print $2}')
echo $y
  • echo $x表示された値x
  • awk '{print $2}'以前に表示された2番目のフィールドを印刷しますx
  • $(...)出力を維持してに割り当てますy

答え2

抽出するサブストリングの前に少なくとも1つのスペースがあり、サブストリングにスペースが含まれていないと仮定すると、単純なパラメーター拡張を使用してこれを実行できます。

x="rtcpOnNbActive     true"
y="${x##* }"
echo "[$y]"

出力

[true]

答え3

bash配列を使用してこれを行うことができます。str角かっこを中に入れるだけです。たとえば、

arr=("first second third")
echo ${arr[1]}

str="first second third"
arr1=($str)
echo ${arr1[1]}

答え4

read内蔵のものを使用できます。

read -r _ y <<<"$x"
printf "%s\n" "$y"
true

関連情報