鉴于:
- Zip 文件的名称和位置。示例:collectionOfPdfFiles2017.zip
- Zip File 是没有文件夹结构的 PDF 集合
- Zip 文件中 PDF 文件的名称。示例:someFileFrom2017.pdf
通缉:
- 从给定的 zip 文件中提取命名 PDF 的控制台方式
- 该文件不应被修改。
- 基本上,提取的文件应该与我通过提取整个存档并手动复制想要的文件获得的状态相同。
- 理想情况下进入目标文件夹。但那是奢侈。
我该怎么做呢?目前我有一个脚本,它将在 ZIP 内的 PDF 文件中搜索字符串并打印出 zip 的名称和其中的 pdf。我会张贴这个以防万一:
#!/bin/bash
echo "Hi I'll find text in pdf files that are stored inside zip files."
echo ""
echo "Enter search string:"
read searchString
echo "Ok. I'll search all zip files for content with this text..."
for z in *.zip
do
zipinfo -1 "$z" | # Get the list of filenames in the zip file
while IFS= read -r f
do
unzip -p "$z" "$f" | # Extract each PDF to standard output instead of a file
pdftotext - - | # Then convert it to text, reading from stdin, writing to stdout
grep -q $searchString && echo "$z -> $f" # And finally grep the text
done
done
这个脚本是由于这个答案而创建的。
从 zip 存档中解压缩特定文件
在你的脚本中