加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell – 带有zcat和grep的s3cmd计数行

发布时间:2020-12-15 21:59:12 所属栏目:安全 来源:网络整理
导读:我需要从包含特定字符的S3存储桶中计算压缩(.gz)文件中的条目数.我怎么能这样做? 具体来说,我的S3存储桶是s3://mys3.com/.在此之下,有数千个桶如下: s3://mys3.com/bucket1/s3://mys3.com/bucket2/s3://mys3.com/bucket3/ ...s3://mys3.com/bucket2000/
我需要从包含特定字符的S3存储桶中计算压缩(.gz)文件中的条目数.我怎么能这样做?

具体来说,我的S3存储桶是s3://mys3.com/.在此之下,有数千个桶如下:

s3://mys3.com/bucket1/
s3://mys3.com/bucket2/
s3://mys3.com/bucket3/
           ...
s3://mys3.com/bucket2000/

在每个桶中,有大约数百个压缩(.gz)JSON对象,如下所示:

s3://mys3.com/bucket1/file1.gz
s3://mys3.com/bucket1/file2.gz
s3://mys3.com/bucket1/file3.gz
           ...
s3://mys3.com/bucket1/file100.gz

每个压缩文件包含大约20,000个JSON对象(每个JSON对象是一行).在每个JSON对象中,都有某些字段包含单词“request”.我想计算包含单词“request”的bucket1中有多少个JSON对象.我尝试了这个,但它不起作用:

zcat s3cmd --recursive ls s3://mys3.com/bucket1/ | grep "request" | wc -l

我没有很多shell经验,所以有人可以帮助我吗?谢谢!

解决方法

如果有人有兴趣:

s3cmd ls --recursive s3://mys3.com/bucket1/ | awk '{print $4}' | grep '.gz' | xargs -I@ s3cmd get @ - | zgrep 'request' | wc -l

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读