【问题标题】:Bash Partial Unzip of Archive in Loop循环中归档的 Bash 部分解压缩
【发布时间】:2016-01-25 13:55:58
【问题描述】:

我有一系列 zip 存档,我希望从中提取一个文本文件到输出目录。该文件位于一般位置:

archive.zip/archive/summary.txt

我有以下我认为应该可以工作的代码:

for file in *.zip
do
   name=${file##*/}
   base=${name%.zip}
   unzip -j $name/$base/summary.txt -d /$output/$file-summary.txt
done

但是解压后找不到文本文件。

【问题讨论】:

  • 1. "$output" 的值是多少? 2. 我会使用 sed -x ( 或 bash -x yourscript 进行检查,以输出解析和扩展后将运行的确切命令。3. “双引号”每个包含空格/元字符和 every 扩展的文字:"$var"、"$(command "$var")"、"${array[@]}"、"a & b"。请参阅mywiki.wooledge.org/Quotesmywiki.wooledge.org/Argumentswiki.bash-hackers.org/syntax/words
  • @RanyAlbegWein:我认为我在解压缩命令中获得了输出和提取目录有点错误,我还添加了双引号。我将在下面添加我要工作的代码作为答案。有一天它可能对某人有用。
  • 太棒了。我什至会给你投票!

标签: bash unzip


【解决方案1】:

最后做了我想做的事:

for file in *.zip
do
   name=${file##*/}
   base=${name%.zip}
   unzip -j "$name" "$base/summary.txt" -d "$output/$base"
done

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 2016-08-05
    • 2019-12-09
    • 2023-04-02
    • 1970-01-01
    • 2015-05-22
    相关资源
    最近更新 更多