![](/img/trans.png)
[英]How do i write a bash script to loop through each directory in a folder and append all .txt files into a single file?
[英]Loop through a folder of PDF files and append a single PDF to each
此代码似乎只是替换了第一个文件,而不是将file1.pdf附加到该文件。
我需要追加文件而不是替换文件。
#!/bin/bash
FILES=("/Users/a/folder/"*.pdf)
for f in "${FILES[@]}"
do
echo "${f}"
"/System/Library/Automator/Combine PDF Pages.action/Contents/Resources/join.py" -o "${f}" "${f}" "/Users/a/folder2/file1.pdf"
done
我注意到,如果我手动运行代码,但是对第一个和第二个参数使用不同的名称,则它似乎可以工作。 但是,我不知道如何在不使其不变的情况下更改第一个参数的名称。
在我看来,您的问题与Ruby无关。 据我了解,您正在尝试使用MacOS X El Capitan上的命令行将PDF文件与其他PDF文件合并。
如果我正确理解了您的问题,那么您可能应该听取本博客的建议,并使用MacOS X Tiger上的命令"/System/Library/Automator/Combine PDF Pages.action/Contents/Resources/join.py"
向前。
请注意,如果要附加的文件位于要附加所有文件的目录中,则会遇到问题:脚本join.py似乎不希望为同一文件提供三次,所以将文件放置在其他位置(您要附加到所有文件的位置)。
尝试以下方法:
#!/bin/bash for f in /Absolute/Path/To/The/PDFS/*.pdf; do /System/Library/Automator/Combine\\ PDF\\ Pages.action/Contents/Resources/join.py -o $f $f /Absolute/Path/To/The/File/To/Append; done
解:
#!/bin/bash
FILES=("/Users/a/folder/"*.pdf)
for f in "${FILES[@]}"
do
echo "${f}"
a="${f%.pdf}"
"/System/Library/Automator/Combine PDF Pages.action/Contents/Resources/join.py" -o "${a}_x.pdf" "${f}" "/Users/a/folder2/file1.pdf"
done
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.