0

AWK を使用して EC2 コマンドからの出力を取得しようとしています。AWK 部分が機能し、EC2 コマンドが機能します。問題は、スクリプトに引数を渡すと、そのうちの 1 つが AWK のスタイルと競合することです。具体的にはprint $2

適切なセグメントは

cmd="/opt/aws/bin/ec2-run-instances -O $secid  -W $seckey $ami  -n $1 -g $secg -k $sshkey -t $instsize -z $2 | awk '/^INSTANCE/ {print $2}'

ご覧のとおり、EC2 インスタンス ID を取得するには $2 を出力する必要があります。引数の形式を変更しない回避策はありますか?

ありがとう!

RESERVATION     r-******      ********    www.abc.com
INSTANCE        i-****      ami-*****
4

3 に答える 3

2

$1シェルが$2などを置き換えないように、 awk でエスケープする必要があるだけだと思います。

awk '/^INSTANCE/ {print \$2}'

または CMD 変数:

cmd="/opt/aws/bin/ec2-run-instances -O $secid  -W $seckey $ami  -n $1 -g $secg -k $sshkey -t $instsize -z $2 | awk '/^INSTANCE/ {print \$2}'"
于 2013-05-22T03:26:57.877 に答える