Ricerca stringa su pdf e stampa pagine relative

di il
8 risposte

Ricerca stringa su pdf e stampa pagine relative

Ciao a tutti.

Ho un file pdf di circa 6/7 MB ed avrei la necessità di ricercare un nome specifico nel suo interno e stampare solo le pagine che contengono quel nome. "Ingegnandomi", si fa per dire, sono riuscito a fare questo:

"#!/bin/bash
pdfgrep -in "pippo" *.pdf > prova.txt
sed -i 's/://g;s/ //g;s/PIPPO//g' ~/prova.txt
pdftk prova.pdf cat < prova.txt output pippo.pdf
exit"

(ovviamente senza "" virgolette )

I comandi corrispondenti alla riga #1 e #2 funzionano bene, mentre il terzo non viene eseguito e il file pdf che genera (pippo.pdf) è identico a quello iniziale (prova.pdf). È come se non eseguisse il comando alla riga #3.... Mentre se provo ad eseguire il comando alla riga #3 sul terminale e gli sostituisco i valori contenuti nel file prova.txt, funziona. Mi spiego meglio: Le prime due righe mi creano il file prova.txt con all'interno le pagina dove trova la stringa "pippo" in questo formato:
16
19
23
27
La riga #3 non funziona ma da terminale se scrivo: pdftk prova.pdf cat 16 19 23 27 output pippo.pdf, funziona.

Dove sbaglio?

Grazie a tutti.

Marco

8 Risposte

  • Re: Ricerca stringa su pdf e stampa pagine relative

    Prova ad eseguire manualmente
    pdftk prova.pdf cat < prova.txt output pippo.pdf
    per vedere se l'espansione di prova.txt è corretta. Se nel file prova.txt i numeri di pagina sono separati da un '\n', il problema potrebbe essere quello: quando lo fai a mano, separi i numeri di pagina con uno spazio. Se lo fai da file, il '\n' viene preso come esecuzione del comando. Dovresti avere in console degli errori tipo "19: command not found".
  • Re: Ricerca stringa su pdf e stampa pagine relative

    Ciao e grazie per la tua pazienza.
    Per risponderti, avevo provato ad eseguire solo la riga di comandi che mi hai postato, ma il risultato è esattamente identico.
    Ho anche modificato lo script per farmi estrarre i numeri in prova1.txt in questa forma: : (16 19 23 27) senza parentesi tonde.
    Il risultato, purtroppo non cambia......
    lo script modificato è:

    #!/bin/bash
    pdfgrep -in "pippo" *.pdf > prova.txt
    sed -i 's/://g;s/ //g;s/pippo//g' ~/prova.txt
    sed -i "s/$/ /g" prova.txt
    cat prova.txt | tr -d "\n" > prova1.txt
    sed -i 's/ *$//' prova1.txt
    pdftk prova.pdf cat < prova1.txt output pippo.pdf
    rm *.txt
    exit
  • Re: Ricerca stringa su pdf e stampa pagine relative

    ...per la tua ultima considerazione: dalla console nessun errore: lo script sembra filare liscio.....
  • Re: Ricerca stringa su pdf e stampa pagine relative

    Ho fatto una prova al volo sul mio Debian 9: a me funziona, ma male...
    pdftk prova.pdf cat 10 20 30 output pippo.pdf
    mi produce un pdf con 3 pagine.
    echo 10 20 30 > lista.txt
    pdftk prova.pdf cat < lista.txt output pippo.pdf
    
    mi produce un pdf con 33 pagine...
  • Re: Ricerca stringa su pdf e stampa pagine relative

    Ciao
    Si infatti: è la stessa cosa che capita a me.
    Il file pippo.pdf mi esce fuori ma invece di essere delle sole pagine indicate nel file prova1.txt, mi esce con tutte quelle del file iniziale prova.pdf.
    È come, appunto, se non recepisse minimamente il comando "pdftk prova.pdf cat < prova1.txt output pippo.pdf" dello script.
    Sostituendo le pagine, come anche hai fatto tu, funziona.
    altre idee? io sto impazzendo......
  • Re: Ricerca stringa su pdf e stampa pagine relative

    Ciao
    Nessuna idea?
  • Re: Ricerca stringa su pdf e stampa pagine relative

    Al momento mi sono venute in mente soluzioni troppo assurde, ogni tanto ne provo qualcuna, ma nisba.
  • Re: Ricerca stringa su pdf e stampa pagine relative

    Ok, grazie.
    Non mi spiego perché cat non riconosce l'input del file di testo......
    Grazie ancora e Buon Anno
Devi accedere o registrarti per scrivere nel forum
8 risposte