【发布时间】:2013-10-07 23:34:53
【问题描述】:
我对 Bash 很陌生,所以这可能是微不足道的,但我就是不明白。我正在尝试转义文件名中的空格。看一看。请注意,这是一个“工作示例” - 我知道使用空白页交错文件可能更容易完成,但我在这里讨论的是空间。
#! /bin/sh
first=true
i=combined.pdf
o=combined2.pdf
for f in test/*.pdf
do
if $first; then
first=false
ifile=\"$f\"
else
ifile=$i\ \"$f\"
fi
pdftk $ifile blank.pdf cat output $o
t=$i
i=$o
o=$t
break
done
假设我有一个名为my file.pdf 的文件(带有空格)。我希望 ifile 变量包含字符串 combined.pdf "my file.pdf",以便 pdftk 能够将其用作两个文件参数 - 第一个是 combined.pdf,第二个是 my file.pdf。
我尝试了各种转义方式(有或没有首先转义引号本身等),但在执行 pdftk 时它会不断拆分 my 和 file.pdf。
编辑:澄清一下:我试图将一个变量中的多个文件名(作为多个参数)传递给 pdftk 命令。我希望它能够识别两个文件名之间的区别,但不要在空格处将一个文件名分开。
【问题讨论】:
-
不是烦人,而是两秒钟的谷歌搜索,我发现了这个:lornajane.net/posts/2011/combining-pdf-files-with-pdftk
-
不过,这是我的问题的“最小工作示例”。在附加文件之前,我正在做一些其他的事情。
-
啊,因为您需要在每页之间留一个空白页。我没看到。
-
你为什么变得这么复杂?使用 2 个变量:
pdftk "$i" "$f" ... -
@AdamGent - 感谢 lornajane.net/posts/2011/combining-pdf-files-with-pdftk 的指针 - 我通过 xargs 的 -J 选项学到了一些新东西