Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

AWS CLI でテキスト出力する際に確実に改行させる

More than 1 year has passed since last update.

これはなんですか

  • AWS CLI で --output text 指定するときに出力を改行表示させる方法です。
  • AWS CLI の出力を xargs で渡すときにこけたのでメモとして書きます。

結論

以下例のように --query オプションで [] を使って明示的にリストとして出力すれば良い。

WAFのWebACL一覧を取得する例
$ aws waf list-web-acls --query "WebACLs[*].[WebACLId]" --output text

詳細

たとえばCLIでWAFのWebACL ID一覧を取得することを考える。何も考えずに以下のコマンドを実行すると、IDがタブ区切りで出力される:

タブ区切りになる
$ aws waf list-web-acls --query "WebACLs[*].WebACLId" --output text
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx    xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx    xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx    xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx    xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx    xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx    ...

これを改行区切りで出力するためには、次のようにクエリ内で明示的に [] を使ってリストとして結果を得ればよい。

改行になる
$ aws waf list-web-acls --query "WebACLs[*].[WebACLId]" --output text
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
...

改行なしの出力を xargs に渡す場合は後者の方法を取ると良い。改行なしの場合は -n 1 で逃げられるが、うまく聞かない環境もあるので個人的にはオススメしない。

ちなみに、 --output table とすると、どちらの場合も同じ出力が得られる。

$ aws waf list-web-acls --query "WebACLs[*].WebACLId" --output table
------------------------------------------
|               ListWebACLs              |
+----------------------------------------+
|  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  |
|  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  |
|  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  |
|  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  |
|  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  |
|  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  |
|                 ...                    |
+----------------------------------------+

参考

Hikosaburou
AWSとGCPの話題が多いです。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away