我正在编写一个bash shell脚本。在那里,我执行一个命令并将输出保存到变量。价值是这样的:
0x34f0020d4 4 0x434346000 test_string
如何解析并保存第3个字符串的值(即0x434346000),假设该值由空格或制表符分隔?
答案 0 :(得分:3)
放置以这种方式提供上述输出的命令:
x=($(your command))
$ echo ${x[2]}
0x434346000
命令的输出存储在数组“x”中,因此数组的索引2包含第3个元素。
答案 1 :(得分:3)
使用shell read
命令:
read first second third rest <<< "$line"
echo $third
答案 2 :(得分:2)
这是使用awk
的一种方式:
var=$(echo "$string" | awk '{ print $3 }')
测试:
echo "$var"
结果:
0x434346000
答案 3 :(得分:1)
您也可以使用cut命令。 echo“axbxc”| cut -f 2 -d“x”给出b
答案 4 :(得分:1)
使用数组索引值:
arr=("0x34f0020d4 4 0x434346000 test_string")
echo "${arr[2]}"