1

私はbashシェルスクリプトを書いています。そこで、コマンドを実行し、出力を変数に保存します。値は次のようになります。

0x34f0020d4         4 0x434346000 test_string

値がスペースまたはタブで区切られていると仮定して、3番目の文字列(つまり0x434346000)の値を解析して保存するにはどうすればよいですか?

4

5 に答える 5

3

上記の出力を与えるコマンドを次のように入力します。

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

コマンドの出力は配列「x」に格納されているため、配列のインデックス2には3番目の要素が含まれています。

于 2012-11-29T14:18:46.417 に答える
3

シェルreadコマンドを使用します。

read first second third rest <<< "$line"
echo $third
于 2012-11-29T14:57:58.067 に答える
2

使用する1つの方法は次のawkとおりです。

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

テスト:

echo "$var"

結果:

0x434346000
于 2012-11-29T13:26:05.167 に答える
1

cutコマンドを使用することもできます。エコー「axbxc」| cut -f 2-d"x"はbを与えます

于 2012-11-29T13:30:24.183 に答える
1

配列を使用して値にインデックスを付けます。

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