trying to script a command line
Charles Jones
charles.jones at ciscolearning.org
Tue Mar 4 20:47:45 MST 2008
Before you say that last attempt didn't work, I just saw another example
usage that gave me an idea:
"or (Using Wildcards):
pdftk *.pdf cat output combined.pdf"
So, now this should do it:
mkdir temp; IFS=$'\n'; for file in `cat I-a-files.txt | sed 's/ /\ /g'`;
do cp -v "$file" temp; done; cd temp; pdftk *.pdf cat output ../I-a.pdf
verbose ; unset IFS
Crazy I know... :)
-Charles
Charles Jones wrote:
> Hmm pdftk doesn't seem too friendly in regards to the order of the
> arguments, it would be much easier if you could specify the input
> files last on the command line....how does it tell the difference
> between the filenames and the rest of the args (what if you have a
> file called "output")??
>
> Heres an example I found of using pdftk:
> "Merge Two or More PDFs into a New Document
> pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf"
>
> Again...what happens if you have a file called "cat" or "cat output"?
> What crappy programming.
>
> Give this a try:
> FILES=`cat file.txt | sed 's/ /\\ /g' |xargs`; pdftk $FILES cat output
> I-a.pdf
>
> -Charles
>
> Craig White wrote:
>> Again, that works but it fails because the PDF includes on the last file. As I said, I don't think an xargs thing is going to work at all because as the man page states...the '-' option is to pass only a single file via stdin.
>>
>> Craig
>>
>> On Tue, 2008-03-04 at 19:10 -0700, Charles Jones wrote:
>>
>>> Ah those darn spaces sure cause problems :) Give this a try:
>>>
>>> $ cat I-A-files.txt | sed 's/ /\\ /g' | xargs cat | pdftk - output
>>> I-a.pdf verbose
>>>
>>> It works for my test case:
>>> $ cat file.txt
>>> file with spaces
>>> some other file
>>>
>>> $ cat "file with spaces"
>>> This is the contents of a file with spaces
>>> $ cat some\ other\ file
>>> This is some other file
>>>
>>> $ cat file.txt | sed 's/ /\\ /g' |xargs cat
>>> This is the contents of a file with spaces
>>> This is some other file
>>>
>>> Probably a more elegant way to do it, but I'm late for dinner :-)
>>>
>>> -Charles
>>>
>>>
>>> Craig White wrote:
>>>
>>>> That doesn't seem to work. I quoted the part of the man page that the
>>>> '-' is used to pass only a single PDF into pdftk via stdin and thus the
>>>> xargs thing seems not to fly.
>>>>
>>>> $ cat I-A-files.txt | xargs -0 pdftk cat output I-A.pdf verbose
>>>> Error: No input files. Exiting.
>>>> Errors encountered. No output created.
>>>> Done. Input errors, so no output created.
>>>>
>>>> Thanks
>>>>
>>>> Craig
>>>>
>>>> On Tue, 2008-03-04 at 17:24 -0700, Charles Jones wrote:
>>>>
>>>>
>>>>> Give this a try:
>>>>>
>>>>> cat /path/to/filenames_file.xt |xargs pdftk
>>>>>
>>>>> -Charles
>>>>>
>>>>> Craig White wrote:
>>>>>
>>>>>
>>>>>> I have an awkward situation with pdftk
>>>>>>
>>>>>> I have a file with filenames that I want to pass to pdftk as input
>>>>>> files.
>>>>>>
>>>>>> according to the man page...
>>>>>> <input PDF files | - | PROMPT>
>>>>>> A list of the input PDF files. If you plan to combine these PDFs
>>>>>> (without using handles) then list files in the order you want
>>>>>> them combined. Use - to pass a single PDF into pdftk via stdin.
>>>>>>
>>>>>> and thus, this doesn't work...
>>>>>>
>>>>>> pdftk `cat "/mypath/to/I-A-files.txt"` cat output I-A.pdf verbose
>>>>>>
>>>>>> fails on spaces within the paths/filenames in that file.
>>>>>>
>>>>>> I have tried both escaping the spaces with \ and enclosing each path
>>>>>> within a double quote but neither works.
>>>>>>
>>>>>> I have also tried (which fails)...
>>>>>>
>>>>>> $ cat "/mypath/to/I-A-files.txt" | pdftk - cat output I-A.pdf verbose
>>>>>> Error: Failed to open PDF file:
>>>>>> -
>>>>>> Errors encountered. No output created.
>>>>>> Done. Input errors, so no output created.
>>>>>> sh-3.2$ ls -l
>>>>>> total 4440
>>>>>> -rw-r--r-- 1 craig administrative 10 2008-03-04 15:15 doc_toc.html
>>>>>> -rw-r--r-- 1 craig administrative 1898 2008-03-04 15:30 I-A-files.txt
>>>>>>
>>>>>> Any suggestions on this?
>>>>>>
>>>>>> T
>>>>>>
>>>> ---------------------------------------------------
>>>> PLUG-discuss mailing list - PLUG-discuss at lists.plug.phoenix.az.us
>>>> To subscribe, unsubscribe, or to change your mail settings:
>>>> http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss
>>>>
>>>>
>>> ---------------------------------------------------
>>> PLUG-discuss mailing list - PLUG-discuss at lists.plug.phoenix.az.us
>>> To subscribe, unsubscribe, or to change your mail settings:
>>> http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss
>>>
>>
>> ---------------------------------------------------
>> PLUG-discuss mailing list - PLUG-discuss at lists.plug.phoenix.az.us
>> To subscribe, unsubscribe, or to change your mail settings:
>> http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss
>>
>
> ------------------------------------------------------------------------
>
> ---------------------------------------------------
> PLUG-discuss mailing list - PLUG-discuss at lists.plug.phoenix.az.us
> To subscribe, unsubscribe, or to change your mail settings:
> http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.PLUG.phoenix.az.us/pipermail/plug-discuss/attachments/20080304/23542092/attachment.htm
More information about the PLUG-discuss
mailing list