1

我正在编写一个 bash shell 脚本。在那里,我执行一个命令并将输出保存到一个变量中。值是这样的:

0x34f0020d4         4 0x434346000 test_string

如何解析和保存第三个字符串的值(即 0x434346000),假设该值由空格或制表符分隔?

4

5 回答 5

3

使用外壳read命令:

read first second third rest <<< "$line"
echo $third
于 2012-11-29T14:57:58.067 回答
3

以这种方式输入给出上述输出的命令:

x=($(your command))
$ echo ${x[2]}
0x434346000

命令的输出存储在数组“x”中,因此数组的索引 2 包含第三个元素。

于 2012-11-29T14:18:46.417 回答
2

这是一种使用方法awk

var=$(echo "$string" | awk '{ print $3 }')

测试:

echo "$var"

结果:

0x434346000
于 2012-11-29T13:26:05.167 回答
1

使用数组来索引值:

arr=("0x34f0020d4         4 0x434346000 test_string")
echo "${arr[2]}"
于 2012-11-29T16:13:12.050 回答
1

您也可以使用剪切命令。回声“axbxc” | cut -f 2 -d "x" 给出 b

于 2012-11-29T13:30:24.183 回答