2017-10-10 4 views
0

私はメタデータAWS CLI:AWS EC2説明-画像:ループとファイル

#!/bin/bash 
values=$(<$PWD/amis_ID.txt) 
for value in $values 
do 
    aws ec2 describe-images --region="us-****-1" --image-ids "$value" 
done 

例amis_ID_only.txtを見つけるために、画像-IDのリストthroのループへのシェルスクリプトを実行しようとしていますから読んで私は$の値を印刷するとき

ami-11c3b374 
ami-3dd32356 
ami-ae3222c6 
ami-4cdd9b26 
ami-21a7e964 
ami-c928e732 
ami-15add3ff 
ami-2b8e3820 
ami-fs0dhswe 
... 

、それは私

に正常に見える。しかし、その後のループのためにゆがんで行く

"n error occurred (InvalidAMIID.Malformed) when calling the DescribeImages operation: Invalid id: "ami-11c3b374 

とループのthroに行きます。

私は、ループのための$値の引用符なしで試してみました。また、ファイル形式が間違っていると思っていますか?特別な文字、タブ、sed、awkなどのスペースを削除してファイルをクリーンアップする必要がある場合、何か不足している場合は、提案があることをお知らせください。 またはFYI aws ec2 describe

のためにも、可能なループのこのよう場合は:ちょうどaws ec2 describe-images --image-ids <ami-id>を実行すると、あなたはめったにbashで直接ファイルの内容をループしたくないJSON

答えて

1

を吐き出すている働きました。

<amis_ID.txt xargs -I{} \ 
    aws ec2 describe-images --region="us-****-1" --image-ids "{}" 
+0

なぜわからそれでも同じエラーが表示されないため

:set fileformat=unix

おかげで行末を固定:ここ

は私がやったことです。私はtxtとして保存している間に、何かがファイルに入っていないように見えますか? "DescribeImages操作を呼び出すと、nエラーが発生しました(InvalidAMIID.Malformed):無効なID:" ami-11c3b374 次の行の文字があります。私は質問 – Jauyzed

+0

'TR -dを追加してみてください "\ rの" パイプラインに'、多分あなたのファイルはDOS形式である更新されました( '<ファイルTR -d "\ rを" | xargsのを...')。 – liborm

0

これは、ファイル形式の問題でした:例えば - それは

優先(およびよりよい)方法がある...、遅い醜いです。私の元のソリューションが動作したか、他のソリューションが動作します。ファイルはDOSフォーマットであった。 viエディタでファイルを開き、すべてのソリューション

関連する問題