【发布时间】:2019-03-26 12:41:10
【问题描述】:
我想对 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'
【问题讨论】:
-
xargs可能会有所帮助。 -
感谢赛勒斯,这将如何运作?不熟悉终端中的 xargs。应该在cp里面吗?试过这个但没有用
xargs -I % cp - -
旁注:您正在有效地下载每个文件,但会丢弃结果,因此如果您要进行重复搜索,最好使用
aws s3 sync将文件复制到本地并然后在本地搜索它们。