【问题标题】:ls in awscli returns "PRE". Why and how to get rid of itawscli 中的 ls 返回“PRE”。为什么以及如何摆脱它
【发布时间】:2017-12-04 08:07:11
【问题描述】:

在git bash中使用awscli,命令

aws s3 ls "s3://directory/"

返回一个列表

PRE "filename"

这很不方便,因为我需要对输出执行进一步的命令,而且我只需要给定目录中的文件/目录名称。

例如,如果能够这样做就好了:

for dir in $(aws s3 ls s3://directory/) do
 aws s3 ls $dir | grep .json;
done

有解决此问题的建议吗?

【问题讨论】:

    标签: amazon-s3 git-bash aws-cli ls


    【解决方案1】:

    你可以用类似的东西来做到这一点

    aws s3 ls s3://directory --recursive | awk '{print $4}' | grep .json
    

    【讨论】:

    • 请注意,对于包含空格或包含“.json”的文件夹名称,这将产生不正确的结果。
    【解决方案2】:

    列出所有文件夹:

    aws s3 ls s3://bkt --recursive | tr -s ' ' | cut -d ' ' -f4- | grep "\/$" | sed 's/\/$//'
    

    列出所有文件:

    aws s3 ls s3://bkt --recursive | tr -s ' ' | cut -d ' ' -f4- | grep -v /$
    

    列出所有 .json 文件:

    aws s3 ls s3://bkt --recursive | tr -s ' ' | cut -d ' ' -f4- | grep "\.json$"
    

    列出所有 .json 和所有 .yaml 文件:

    aws s3 ls s3://bkt --recursive | tr -s ' ' | cut -d ' ' -f4- | grep -E "(\.yaml|\.json)$"
    

    列出所有文件除了 .json 文件:

    aws s3 ls s3://bkt --recursive | tr -s ' ' | cut -d ' ' -f4- | grep -v "\.json$"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-03
      • 2015-02-02
      • 2022-08-18
      • 2023-03-17
      • 1970-01-01
      • 2012-01-27
      相关资源
      最近更新 更多