gpt4 book ai didi

对标准输出的每一行进行正则表达式并推送到 shell/bash 中的数组

转载 作者:行者123 更新时间:2023-11-29 09:23:21 25 4
gpt4 key购买 nike

我正在使用 AWS CLI ls 一个 S3 存储桶。输出是:

Austins-MacBook-Pro:~ austin$ aws s3 ls s3://obscured-bucket-name
PRE 2016-02-24-03-42/
PRE 2016-02-25-22-25/
PRE 2016-02-26-00-34/
PRE 2016-02-26-00-42/
PRE 2016-02-26-03-43/

使用 Bash 或 Shell 脚本,我需要获取每一行并删除前缀名称前的空格或制表符和 PRE 并将每个前缀放入一个数组中,以便我随后可以使用它 rm 最旧的文件夹。

TLDR;

我需要将 aws s3 ls s3://obscured-bucket-name 的输出转换为这样的值数组:2016-02-26-03-43/

感谢阅读!

最佳答案

,你可以:

mapfile myarray < <(aws s3 ls s3://obscured-bucket-name)
echo ${myarray[@]#*PRE }
2016-02-24-03-42/ 2016-02-25-22-25/ 2016-02-26-00-34/ 2016-02-26-00-42/ 2016-02-26-03-43/

mapfile -t myarray < <(aws s3 ls s3://obscured-bucket-name)
myarray=( "${myarray[@]#*PRE }" )
printf '<%s>\n' "${myarray[@]%/}"
<2016-02-24-03-42>
<2016-02-25-22-25>
<2016-02-26-00-34>
<2016-02-26-00-42>
<2016-02-26-03-43>

注意:-t 开关从读取的每一行中删除尾随换行符。

参见help mapfile 和/或man -Pless\+/readarray bash

mapfile 于 2009 年引入,版本为 4 .

关于对标准输出的每一行进行正则表达式并推送到 shell/bash 中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35646685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com