Bash 在AWS的一个CLI命令中删除所有转录作业

Bash 在AWS的一个CLI命令中删除所有转录作业,bash,amazon-web-services,command-line-interface,Bash,Amazon Web Services,Command Line Interface,我试图同时删除所有AWS转录作业。我知道我可以通过控制台逐一查看和删除它们,也可以通过以下命令通过CLI将它们全部删除: $ aws transcribe delete-transcription-job --transcription-job-name YOUR_JOB_NAME 问题是我必须为每一份工作都这样做!我正在大规模地与他们打交道(大约1000个工作岗位)。我已尝试了以下代码,但这不起作用: for jobName in ${aws transcribe list-transcri

我试图同时删除所有AWS转录作业。我知道我可以通过控制台逐一查看和删除它们,也可以通过以下命令通过CLI将它们全部删除:

$ aws transcribe delete-transcription-job --transcription-job-name YOUR_JOB_NAME
问题是我必须为每一份工作都这样做!我正在大规模地与他们打交道(大约1000个工作岗位)。我已尝试了以下代码,但这不起作用:

for jobName in ${aws transcribe list-transcription-jobs --query '[TranscriptionJobSummaries[*].TranscriptionJobName]' --output text}; do aws delete-transcription-job --transcription-job-name $jobName

当我运行这段代码时,它什么也不做。有没有办法解决这个问题?

如果您希望通过
list translation jobs
命令返回大量值,那么
for
循环可能会达到参数列表限制。在这种情况下,最好在读取时使用
循环,例如:

aws transcribe list-transcription-jobs --query '[TranscriptionJobSummaries[*].TranscriptionJobName]' --output text | while read jobName; do
    aws delete-transcription-job --transcription-job-name "$jobName"
done

如果希望通过
list transcription jobs
命令返回大量值,则
for
循环可能会达到参数列表限制。在这种情况下,最好在读取时使用
循环,例如:

aws transcribe list-transcription-jobs --query '[TranscriptionJobSummaries[*].TranscriptionJobName]' --output text | while read jobName; do
    aws delete-transcription-job --transcription-job-name "$jobName"
done

关于这一点,我不是100%确定,但我相当确定的是,您的
aws
命令应该包装在
$()
中,而不是
${}
@jnevil我以前使用过
()
,并且尝试过
{}
,但是两者都会产生相同的结果:(在这一点上不是100%确定,但我相当确定的是,您的
aws
命令应该包装在
$()
中,而不是
${}
@JNevill我以前使用过
()
,并且尝试过
{}
,但是两者都会产生相同的结果:(我尝试过这种方法,前半部分有效,但无法完成另一半。它可以为我列出作业没有问题,但是当它使用提供的信息进行删除时,它不会显示任何内容。它似乎仍在处理中,但检查控制台上的转录,它仍然显示所有作业。有什么想法吗?
aws转录列表转录作业--最大结果100--查询“[TranscriptionJobSummaries[*].TranscriptionJobName]”--读取jobName时输出文本;aws删除转录作业--转录作业名称“$jobName”完成
@OwenMurray您粘贴的命令最多打印100个结果。如果这是您在循环中使用的命令,则只会删除前100个结果。这可以解释您观察到的情况吗?您是否尝试过不使用
--max results 100
?抱歉,我将其最大值更改为1,因为它一次打印5个结果时间到了,我现在可以用了,谢谢你的帮助!:)我尝试过这种方法,前半部分有效,但无法完成另一半。它可以为我列出作业没有问题,但是当它使用提供的信息进行删除时,它不会显示任何内容。它似乎仍在处理中,但检查控制台上的转录,它仍然显示所有作业。有什么想法吗?
aws转录列表转录作业--最大结果100--查询“[TranscriptionJobSummaries[*].TranscriptionJobName]”--读取jobName时输出文本;aws删除转录作业--转录作业名称“$jobName”完成
@OwenMurray您粘贴的命令最多打印100个结果。如果这是您在循环中使用的命令,则只会删除前100个结果。这可以解释您观察到的情况吗?您是否尝试过不使用
--max results 100
?抱歉,我将其最大值更改为1,因为它一次打印5个结果时间到了,我现在可以用了,谢谢你的帮助!:)