首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用终端获取AWS S3上目录中所有单个文件的行数?

如何使用终端获取AWS S3上目录中所有单个文件的行数?
EN

Stack Overflow用户
提问于 2022-02-17 19:09:18
回答 2查看 517关注 0票数 0

我对终端指令很陌生。我知道,如果文件是本地的,我们可以做一些类似wc -l directory/*的事情。但是,如何使用终端在AWS S3上实现相同的功能呢?输出应该是文件名和计数。

例如,S3中的一个目录中有两个文件-“abcd.txt”(文件中的5行)和“efgh.txt”(文件中的10行)。我要每个文件的行数,而不用下载文件,使用终端。输出- 'abcd.txt‘5 'efgh.txt’10

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-23 22:36:17

如果有用的话,下面是一个使用awscli的快速shell脚本。

代码语言:javascript
复制
#!/bin/bash

FILES=$(aws s3 ls s3://mybucket/csv/ | tr -s ' ' | cut -d ' ' -f4)

for file in $FILES; do
    echo $file, $(aws s3 cp s3://mybucket/csv/$file - | wc -l)
done

产出实例:

代码语言:javascript
复制
planets.csv, 8
countries.csv, 195
continents.csv, 7

请注意,它有效地将单个文件下载到stdout,然后对其进行行计数,因此不会在本地保存任何文件。如果您想让它递归地工作,或者针对包含非文本文件的S3对象集合,那么这将是一些额外的工作。

票数 1
EN

Stack Overflow用户

发布于 2022-02-23 21:29:27

使用简单的命令是不可能的。亚马逊S3没有提供“远程”计算对象中行数的能力。

相反,需要将文件下载到计算机中,然后计算行数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71164078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档