我想对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'
答案 0 :(得分:1)
您可以指定要输出的字段并将其强制为纯文本:
aws s3api list-objects-v2 \
--bucket s3bucket \
--prefix location \
--query 'reverse(sort_by(Contents,&LastModified))[].[Key]' \
--output text
基本上,sort_by
和reverse
输出Contents
数组,这将提取Key
元素。我将[Key]
放在方括号中,以将每个结果强制放在自己的行上。