我有一个包含大量 PDF 的目录,我正在使用 Poppler 将其转换为 *.txt 文档pdftotext
。我有以下命令来转换所有文件。
for f in *.pdf; do pdftotext $f; done
PDF 位于外部存储设备上,无需任何额外空间。如何将输出重定向到不同的目录?也就是说,每个 PDF 转换时,都会写入另一个位置,而不是写入与 PDF 相同的目录。
答案1
这是 don_crissti 建议的解决方案,我在这里为刚刚开始使用 Unix 和 Linux 的用户提供解释。请随意编辑,因为此摘要是由新手撰写的。
for f in *.pdf; do pdftotext "$f" "/path/to/some/dir/${f%.*}.txt"; done
现在,让我们检查每个命令。这是一个标准的 for 循环,用于迭代当前工作目录中的所有文件。for f in *.pdf
。在此命令中,f
用作索引。下一个命令将 PDF 转换为文本。这假设用户已经安装poppler
:
pdftotext "$f" "/path/to/some/dir/${f%.*}.txt"
"$f"
用于保存输入的名称PDF文件并"/path/to/some/dir/${f%.*}.txt"
指定输出的路径TXT文件,即目标目录/path/to/some/dir/
和输出文件名${f%.*}.txt
,输出文件名基本上是输入文件名 ( "$f"
),并.pdf
通过以下方式从文件名中删除了扩展名参数替换并.txt
附加后缀。