Pra*_*ain 19 bash string variable
我有一个"rtcpOnNbActive true"存储在变量中的字符串x。我想提取“true”作为子字符串并存储在一个变量中。我怎样才能做到这一点?
jhe*_*ran 28
试试这个方法:
y=$(echo $x | awk '{print $2}')
echo $y
Run Code Online (Sandbox Code Playgroud)
echo $x显示 的值x。awk '{print $2}'打印先前显示的第二个字段x。$(...)保持输出并让其分配给y.PM *_*ing 10
假设您要提取的子字符串之前至少有一个空格(并且该子字符串不包含任何空格),您可以通过一个简单的参数扩展来做到这一点:
x="rtcpOnNbActive true"
y="${x##* }"
echo "[$y]"
Run Code Online (Sandbox Code Playgroud)
输出
[true]
Run Code Online (Sandbox Code Playgroud)
你可以使用 awk:
echo "rtcpOnNbActive true" | awk '{print $NF}'
true
Run Code Online (Sandbox Code Playgroud)
NF 当前记录中的字段数
使用 sed:
echo "rtcpOnNbActive true" | sed 's/.* //g'
true
Run Code Online (Sandbox Code Playgroud)
使用字符串表达式:
a="rtcpOnNbActive true"
echo ${a##* }
true
Run Code Online (Sandbox Code Playgroud)
使用 grep:
echo "rtcpOnNbActive true" | grep -Eo "[a-z]+$"
true
Run Code Online (Sandbox Code Playgroud)
-o 仅给出精确匹配,[a-z]+将匹配来自 az 的字母和$末尾的意思
可以为此使用 bash 数组,只需将您的str括号放在里面。例如:
arr=("first second third")
echo ${arr[1]}
str="first second third"
arr1=($str)
echo ${arr1[1]}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
107493 次 |
| 最近记录: |