4

コマンド「xm list」の次の出力があります。

Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   505     4     r-----  11967.2
test1                                       28  1024     1     -b----    137.9
test2                                       33  1024     1     -b----      3.2

次のシェルスクリプトを実行します: ./myscript test2 このスクリプトでは、test2 の ID が必要です (コマンド "xm list" (ID33) で表示)。

xm list | grep $1 | cut ???

これはどのように作動しますか?

4

4 に答える 4

5

awk の使用についてはどうでしょうか。

xm list | awk '/^test2/ {print $2}'

行頭でこのテキストをチェックするように追加^しました。/^test/またawk '$1=="test2" {print $2}'、それを作るでしょう。

テスト

$ cat a
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   505     4     r-----  11967.2
test1                                       28  1024     1     -b----    137.9
test2                                       33  1024     1     -b----      3.2
$ awk '/^test2/ {print $2}' a
33
于 2013-09-12T09:15:42.943 に答える
4

ではcut、連続する複数の区切り文字を 1 つとして扱うことができないため、機能しcut -d ' 'ません。

awk他の回答のように使用するか、使用するtr前にスペースを「絞る」ために使用しcutます。

xm list | grep test2 | tr -s ' ' | cut -d ' ' -f2
于 2013-09-12T09:21:35.877 に答える
2

http://linux.die.net/man/1/xm

xm <subcommand> [args]

ドメイン

xend の内部マッピングを使用して、ドメイン名をドメイン ID に変換します。

試しましたxm domid test2か?

于 2013-09-12T09:42:10.027 に答える