-1

我想对 S3 文件夹中的文件进行排序,然后检查文件是否包含某个字符串。

当我通常想要 grep 文件时,我会执行以下操作:

aws s3 cp s3://s3bucket/location/file.csv.gz - | zcat | grep 'string_to_find' 

我看到我可以像这样对文件进行排序:

aws s3api list-objects-v2 \
--bucket s3bucket \
--prefix location \
--query 'reverse(sort_by(Contents,&LastModified))'

到目前为止尝试过这样的事情,但管道坏了:

aws s3api list-objects-v2 \
--bucket s3bucket \
--prefix location \
--query 'reverse(sort_by(Contents,&LastModified))' | cp - | zcat | grep 'string_to_find'
4

1 回答 1

2

您可以指定要输出的字段并将它们强制为纯文本:

aws s3api list-objects-v2 \
--bucket s3bucket \
--prefix location \
--query 'reverse(sort_by(Contents,&LastModified))[].[Key]' \
--output text

基本上,sort_byreverse输出Contents数组,这将提取Key元素。我放在[Key]方括号中以将每个结果强制放在自己的行上。

于 2019-03-27T02:11:13.333 回答