🐥

AWS CLIコマンド出力の色付け(ANSIエスケープシーケンス)を無効化する方法

2023/01/06に公開

結論

awsコマンドに--no-color的なフラグは実装されていないので環境変数としてAWS_PAGER=を設定します。=の後に値が指定されていませんが、タイプミスではありません。AWS_PAGERに値が設定されていない場合はページングされず結果的に出力の色付けが無効化されます。

以下、amazon公式が提供しているDockerイメージのamazon/aws-cliを利用する場合の実行例を示します。--envフラグで環境変数を指定しています。

$ docker run --rm -it -v "$HOME/.aws:/root/.aws" --env LC_CTYPE=en_US.UTF-8 --env AWS_PAGER= amazon/aws-cli \
  ec2 describe-instance-types \
  --query "InstanceTypes[0:5:1].InstanceType"

上記はEC2のインスタンスタイプの一覧を取得し、最初の5件を表示するコマンドです。実行例を示します。

[
    "c6a.24xlarge",
    "c4.4xlarge",
    "r6i.xlarge",
    "c3.large",
    "t1.micro"
]

いかがでしょうか、ANSIエスケープシーケンスが除去されて落ち着いたモノトーンの文字列が出力されました。

参考資料

  1. Environment variables to configure the AWS CLI - AWS Command Line Interface

Discussion