将 AWS cli 命令与 xargs 结合使用不起作用

Combining AWS cli commands with xargs not working

我想要一个单行程序来设置 AWS Cloudwatch 日志组的属性。我遇到了 xargs 命令。但是我不明白我做错了什么:

aws logs describe-log-groups \
--query "logGroups[*].logGroupName" \
--output text \ 
| xargs -I {} -n 1 \
 aws logs put-retention-policy \
--log-group-name {} \
--retention-in-days 14

据我所知,{} 将第一个命令的输出作为列表,并通过 xargs 将每个元素通过管道传递给第二个命令。

然而,我的结果是:

An error occurred (InvalidParameterException) when calling the PutRetentionPolicy operation: Member must have length less than or equal to 512

我假设它将列表传递给 xargs,而不仅仅是第一个命令输出的一个元素。


我正在使用 Windows 10 和 git bash

aws logs describe-log-groups | \
 jq ".logGroups[].logGroupName" \
 |xargs -I {} -n 1  aws logs put-retention-policy \
  --log-group-name {} --retention-in-days 14
aws logs describe-log-groups \
--query "logGroups[].logGroupName" \
--output text \
| xargs -I {} -n 1 \
 aws logs put-retention-policy \
--log-group-name {} \
--retention-in-days 14

OS : Mac OSX