以下を出力するコマンドを使用しました。 。
"Credentials": {
"AccessKeyId": "ASIARKHY6",
"SecretAccessKey": "FHM11kEwWZ",
"SessionToken": "IQoJb3JpZ2luX2",
}
次に、次の3つのキーをそれぞれエクスポートする必要があります。私はこれを手動で実行していますが、スクリプトで書くのが好きです。
コマンドの結果をtmpファイルにパイプして使用できます。
cat tmpfile.tmp |grep AccessKeyId
出力: "SecretAccessKey": "FHM11kEwW6sP3Z"
それでは、2番目の「」セットを持つテキストだけをどのように選択できますか?これでエクスポートできます。
ベストアンサー1
プログラムの出力をファイルに保存したと仮定すると、次のように "AccessKeyId"キーを使用してtmpfile.tmp
コマンドを使用して、特定のキーに特定の値を抽出できます。sed
key=AccessKeyId;
sed -n 's/^.*\"'$key'\":.*\"\(.*\)\".*$/\1/p' tmpfile.tmp
ASIARKHY6
次のように一時ファイルを作成せずに、プログラムの出力をsedに直接パイプすることもできます。
key=AccessKeyId;
./program | sed -n 's/^.*\"'$key'\":.*\"\(.*\)\".*$/\1/p'
getval.sh
上記の2つの形式のいずれかを次のようにスクリプト(と呼びます)に入れることをお勧めします。
#!/bin/bash
if [ $# -lt 3 ];then echo "usage: $0 <inputfile> <key>"; exit 0 ;fi
infile=$1
key=$2
sed -n 's/^.*\"'$key'\":.*\"\(.*\)\".*$/\1/p' $infile
実行可能にしたら、次のように実行できます。
./getval.sh tmpfile.tmp AccessKeyId