Bejelentkezés

PDF-kereső szkript

Olvasóink értékelése: 5 / 5

Csillag aktívCsillag aktívCsillag aktívCsillag aktívCsillag aktív
 

Találtam egy hasznos cikket a Full Circle Magazine legfrissebb számában. Készíettem egy tartalmi összefoglalót, talán érdekel valaki mást is.

 ------------------------------------------------------------

PDF-Page-Grep szkript

Írta: Lucas Westermann - megjelent a Full Circle Magazine 89. számában (2014. október)

 

Hivatkozás: http://fullcirclemagazine.org/issue-89/

 

A cikkben leírt és megosztott szkript célja, hogy pdf fájlokban meghatározott szavakat keressen. A találatokat tartalmazó oldalakat egyetlen pdf fájlba gyűjti össze.

Szükséges csomagok:

  • grep
  • pdfinfo (poppler utils)
  • pdfunite (poppler-utils)
  • pdftotext (poppler-utils)
  • pdfjam.

 

A szkript

A legutolsó változat innen tölhető le: http://homepages.dcc.ufmg.br/~lcerf/en/utilities.html#pdf-page-grep

A letöltési hivatkozás („download it”) az „Installation alatt található.

 

Hogy ne kelljen minden egyes alkalommal a teljes elérési utat megadni az indításához lehetséges megoldások

  1. szimbolikus linket kell készíteni a /usr/bin könyvtárba (root-ként)

ln -s /útvonal/a/szkripthez /usr/bin/pdf-page-grep

  1. a home könyvtárban létrehozni egy szkript könyvtárat és azt a PATH változóba berakni.

 

Használata

  • Telepítsd a függőségeket.
  • Tedd végrehajthatóvá (root-ként: chmod +x /útvonal/a/fájlhoz)
  • Futtasd a szkriptet vagy

— argumentumok nélkül – megjeleníti a felhasználási információkat, vagy

— a felhasználási információk szerint argumentummal.

pl. pdf-page-grep -i valami*.pdf pattern: akármi (a keresett minta)

vagy pattern: (üres, a leállításhoz)

 

További opciók:

„-E” - kiterjesztett szabályos kifejezés;

„-F” - fix karaktersort;

„-P” - szabályos Perl kifejezések;

„-w” - teljes szóegyezés;

„-x” - teljes soregyezés.

Működése

1.-7. sor: készítői információk, környezeti változók beállítása. Az egyetlen használt változó a SUFFIX (alapértéke: -matches (találatok)) amit az új PDF-fájlhoz fúz hozzá.;

9.-25. sor: argumentum meglétét vizsgáló „if” kifejezés.

27.-28. sor: a pdf-et konvertáló pdftotxt számára átmeneti könyvtár meghatározása.

29.-30. sor: a „trap” paranccsal üríti ki az átmeneti könyvtárat megszakítás, vagy kilépés esetén.

31.-44. sor: egy „while” hurok a kereséshez, ami addig él , amíg üres keresési mintát nem kap. A minta lehet szabályos kifejezés.

46.-54. sor: elválasztójel keresése, ami jelzi számára, hogy keresési minta következik. (Probléma akkor lehet, ha a fájl(ok) neve elválasztójellel kezdődik, ami pedig elég ritka.)

56.-93. sor: az előző ellentetje, ami az elválaszójel hiányából a fájlnevet azonosítja be, majd új sort ír ki az egyes találatokra „matching pages in <fájlné>:<oldalak az egyezéssel>”. Végeredményben lesz egy listád az átnézett fájlokról, a bármely kifejezéssel egyezést tartalmazó oldalakról. A téynleges keresést a txt-re konvertál szövegen a grep parancs végzi el. Egyezés esetén a grep az oldal számát a $sel változóba írja bele, majd lép a következő oldalra. Az utolsó két sor tartalmazza a találatok mentésének helyét és a találatokat tartalmazó pdf-ek darabszámát. A lapok átnézése után kivonatolja az egyező lapokat egy átmeneti fájlba, törli az egyező lapok listáját, majd a legutolsó fájl nevét feljegyzi.

96.-101. sor: a találatokat tartalmazó pdf-ek darabszámát ellenőrzi. Ha nem „0”, akkor továbblp, egyébként kilép.

102.-112.sor: a találatok számát kezeli. Ha egyetlen van, akkor a „pdfunite” ne várjon további összefűzhető. Egynél több esetén indul a pdfunite és egyesíti őket a -matches.pdf-be

113.sor: kiírja a kimeneti fájl nevét.

A szkript egyes részeire vonatkozó konkrét kérdés esetén az „Ez az e-mail cím a spamrobotok elleni védelem alatt áll. Megtekintéséhez engedélyeznie kell a JavaScript használatát.” e-mail-címre kell üzenetet küldeni.

You have no rights to post comments