Zdravim
Tady v tom threadu jsem resil - a stale resim - konverzi PDB souboru - to jsou Eknihy pro PALM. No a hlavni problem momentalne je to, ze nektere jsou ve znacne exotickych formatech a ja je budu muset nejak specialne prekonvertovat. Lepereceno by mi pomohlo kdybych mohl nejak zjistit ten format pro kazdy soubor, kterych je vice jak 2500.
Na internetu jsem nasel :
There is a way to determine what type of file a pdb file is though. If you open the file in a text editor, there will be a string of text that will identify the file type. It could almost be considered the equivalent of a file extension except you can't see it unless you open the file in an editor.
No to funguje ve windows, treba Leafpad mi zobrazi kulovy, ale :
cat /media/Media2Go/Eknihy/Ginsberg\,\ A/Ginsberg_Allen-Kvileni.PDB
Ginsberg_Allen-KvilenA:WA:WTEXtREAd~@o�o�
�@o�3@o�"�@o�-s@o�E ALLEN�INSBERG:�V̀��
��ZPro�arla�olomona�(
�/ Vid�l�sem�ejlep���lavy�v��enerace�ni�en� ��lenstv�m,�ystericky�bna�� a��du, vlekouc��a���t�n� �erno�sk�mi�lice�@a�ztekle sh�n�j큸d�vku�rogy�phip�y���n���
pricemz je videt oznaceni
TEXtREAdTy formaty jsou TEXtREAd, DataPlkr, Isilofree, Isilo 3, PNRdPPrs .. a dalsi to se da zjistit.
No a ted ale jak ?
Potreboval bych projit rekursivne celou slozku s knizkama a u kazdeho souboru se podivat jestli je to oznaceni formatu pritomne a ulozit cestu toho souboru s nazvem toho formatu. V pripade ze to nenajde zadne oznacncei onacit treba xxx. Myslim ze na vypsani 1. radky by slo pouzit
head -1
a na vyhledavani textu AWK, pricemz jak jsem hledal tak /format/ by melo identifikovat format. Takze jsem zkousel a celkem uspesne :
awk /PNRdPPrs/ /media/Media2Go/Eknihy/Asimov\,\ I/Asimov\,\ Isaac\ -\ Dite\ Casu.pdb
Dite casC#X�C#X�PNRdPPrsP�o�To�,o�#Mo�4ro�Eyo�V o�gho�x�o�ko� �,o�
Take jsem zjistil ze pokud se dany substring v tom souboru nenachazi takmi to nic nevyhodi a tim by bylo snad osetrena pripad : "neznamy format"
No a ted z toho potrebuju udelat skript
Tohle byl ten pokus o konverzi ktery sice blbe ale fungoval.
#!/bin/bash
sourcedir="$1"
destdir="$2"
echo "converting Directory: $sourcedir"
for subdir in "$sourcedir"/*
do
if [[ -d "$subdir" ]]
then
for file in "$subdir"/*
do
#ebook-convert "$file" ".epub" --input-encoding windows-1250 --single-line-paras
mkdir -p "$destdir$subdir"
txt2pdbdoc -d "$file" | iconv -f cp1250 -t utf8 > "$destdir${file%.*}.txt"
#echo "File : $file"
#echo "Directory : $destdir$subdir"
done
fi
done
Takze bch potreboval nejakou array nebo proste ulozit ty nazvy tech formatu do vice promennych a udelat neco jako :
if notempty (awk /format1/ OR /format2/ OR ... filename)
print found_string + path_to_file
else
print "unknown format" + path_to_file
Pak jsem jeste resil problem ze v tom mem skriptu se mi do promene $subdir ukladala absolutni cesta a potreboval bych ji relativni k promene sourcedir .... ale to uz je malickost.
No tak kdyby mi nekdo dal nejaky hint jak tohle udelat budu moc moc vdecny - diky K