Suposarem per al cas pràctic que el prefix se separa de la resta de nom de fitxer per un subratllat "_". Imaginem que el prefix en aquest cas és doc, i que tenim doc_0001.pdf, doc_0002.pdf, i doc_0003.pdf. Volem que rel resultat sigui doc.pdf, contenint la unió de doc_0001.pdf, doc_0002.pdf i doc_0003.pdf.
Obtenció de tots els prefixos diferents en un directori
En aquesta proposta de solució s'utilitza awk i pdftoolkit. Es crea un fitxer awk amb el següent contingut:
BEGIN {FS="_"}
{
printf("%s",$1);
print ("");}
Si s'anomena extreu_prefix.awk, amb awk -f extreu_prefix.awk input es filtrarà i s'obtindrà una llista de prefixos trobats al fitxer d'entrada input.
Unió de PDFs en un
pdftoolkit permet, a partir d'un conjunt de fitxers PDF d'entrada, generar-ne un de sortida que els contingui -entre altres opcions-. És tan fàcil com fer:
pdftk fitxers_entrada output fitxer_sortida
Tot junt
Un cop això ja està clar, per executar tot junt, l'obtenció de tots els fitxers PDF amb un prefix comú i generar un PDF per a cada prefix trobat en un directori, només calen aquestes dues línies:
for pdf in `ls *.pdf | awk -f extreu_prefix.awk | sort -u`; do pdftk $pdf*.pdf output $pdf.pdf; done
rm *_*.pdf
La primera línia obté una llista de fitxers PDF del directori, els passa a awk per extreure una nova llista amb els prefixos trobats (repetits), llista que s'ordena eliminant repetits, i que s'itera per generar per cada un dels prefixos un PDF únic. Cal fixar-se que a pdftk se li passa com primer argument, $pdf*.pdf, és a dir que, en el cas de l'exemple, se li passaria doc*.pdf, de forma que la crida manual a pdftk seria pdftk doc*.pdf output doc.pdf, i de forma anàloga si hi hagués altres prefixos dins del directori.
La segona línia elimina els fitxers PDF inicials per deixar només els nous.
+ GNU FDL
Cap comentari:
Publica un comentari a l'entrada