Grep 对 S3 文件夹中的文件进行了排序



我想对 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'

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

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

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

相关内容

  • 没有找到相关文章

最新更新