gpt4 book ai didi

arrays - 如何使用 BASH 将 tar 命令中的文件读取到数组中?

转载 作者:太空狗 更新时间:2023-10-29 11:32:00 25 4
gpt4 key购买 nike

如何使用 BASH 脚本执行 tar 命令并将输出(文件列表)读入数组?

我已经尝试了很多事情,包括:

fileNames=`tar xvfz ${compressedFile} | readarray`

tar xvfz ${compressedFile} | readarray fileNames

readarray fileNames < tar xvfz ${compressedFile}

files=`tar xvfz ${compressedFile}'
readarray fileNames < ${files}

readarray fileNames < `echo ${files}`

我试过使用和不使用反引号(重音符),并且我试过使用 t 作为 tar.gz 文件的选项。我试图在不将输出发送到文件然后读取文件的情况下完成此操作,但我想这是我的后备计划(尽管我还没有尝试过)。

我最接近的是:

echo ${fileNames} | readarray fileNames

但这只会在数组中创建 1 个项目,并且它包含所有文件名。啊。 :)

有人知道如何完成这个(看似)简单的任务吗?

V

最佳答案

这应该创建包含 tar 文件内容的数组:

IFS=$'\n' declare -a fileNames=($(tar tzf "$compressedFile"))

这是假设您在 tar 文件中的文件名没有换行符。

关于arrays - 如何使用 BASH 将 tar 命令中的文件读取到数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32168925/

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