Přihlásit
: [1]
   |   
: skript konverze doc, rtf - doladeni  ( 2809 )
Ged
Full Member
***

Karma: 3
: 215


17002977
« : August 06, 2010, 12:02:45 »

Mam dost knih v e-podobe (pdb, txt,doc, rtf, ...).

abych neztratil prehled tak si ty co chci aktualne cist symlinkuji do adresare "Precist"

Pouzivam ctecku, ktera nezvlada rtf ani doc tak jsem zbastlil jednoduchy prevodni skriptik. Uznavam je to sileny paskvil, ale funguje. Jen bych potreboval doladit par detajlu. Nebranim se taky radam co delam uplne blbe ap.

:
#!/bin/bash
rm -rf /mnt/data/books/konverze
mkdir /mnt/data/books/konverze
cp -HLr /mnt/data/books/Precist/ /mnt/data/books/konverze/
find /mnt/data/books/konverze/ -type f -iname '*.doc' | while read F; do catdoc "$F" > "${F%.doc}.txt"
done
find /mnt/data/books/konverze/ -type f -iname '*.rtf' | while read F; do catdoc "$F" > "${F%.rtf}.txt"
done
find /mnt/data/books/konverze/ -type f -iregex '.*\(doc\|rtf\)' -exec rm -rf {} \;

Par dotazu (prubezne doplnim):
1. jde v nejak v tom presmerovani (..."$F" > "${F%.rtf}.txt"...) osetrit situaci kdy muze mit soubor v promene priponu doc nebo rtf tak abych nemusel pouzit dva cykly?

Prevodni skript http://wagner.pp.ru/~vitus/software/catdoc/
« : August 06, 2010, 12:06:46 Ged »

Jednou jsem ho videl na vanoce

Gold "3-Ethyl-1,2,2-trimethyl-bicyclo[2.1.0]pentane"

jabber: uranit@jabbim.cz
Ivan Bibr
Administrator
Hero Member
*****

Karma: 52
: 3 298



« #1 : August 06, 2010, 12:36:06 »

Podle mne ano, ale za cenu ztráty té krásné jednoduchosti (resp. nic jednoduchého mne nyní nenapadá). Na co je to potřeba? Optimalizace? Já bych to moc neřešil, protože:

  • Množství cyklů bude stejné - závisí na počtu souborů - a je celkem jedno, jestli to proběhne najednou nebo ve dvou dávkách.
  • Dvakrát spuštěný find ničemu nevadí protože inody už budou v keši, takže přístup k disku to nezrychlí/nezpomalí.
  • Obojí je marginální ve vztahu k času, který si vezme samotný konvertor (a ten se zrychlit nedá).

Lepší radu nemám .

Ged
Full Member
***

Karma: 3
: 215


17002977
« #2 : August 06, 2010, 14:05:13 »

Tak trochu upraveno a zatim funguje.
akorat mi neni jasno proc vyraz .* v retezci  "${F%.*}.txt" u souborů s vice teckami v nazvu odtrhne jen po prvni tecku (neco.nic.moc.doc -> neco.nic.moc a ne neco.nic.moc.doc -> "neco")?

:
#!/bin/bash
rm -rf /mnt/data/books/konverze
mkdir /mnt/data/books/konverze
cp -HLr /mnt/data/books/Precist/ /mnt/data/books/konverze/
find /mnt/data/books/konverze/ -type f -iregex '.*\(doc\|rtf\)' | while read F; do catdoc "$F" > "${F%.*}.txt"
done
find /mnt/data/books/konverze/ -type f -iregex '.*\(doc\|rtf\)' -exec rm -rf {} \;

Jednou jsem ho videl na vanoce

Gold "3-Ethyl-1,2,2-trimethyl-bicyclo[2.1.0]pentane"

jabber: uranit@jabbim.cz
: [1]
   |   
 
: