Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Uran 09 Ledna 2009, 09:10:00
-
Tak jsem udelal zasadni chybu nejak jsem zasantrocil postup na prevod pdb na txt (uz jednou mi to fungovalo).
Nasledujici postup mi nefunguje.
1. Stahnul jsem program txt2pdbdoc http://homepage.mac.com/pauljlucas/software/txt2pdbdoc/ - zkompiloval a nainstaloval vse probehlo bez chyb
2. Nakonec jsem zadal tento prikaz: find . -iname '*.pdb' -exec txt2pdbdoc -d -D -v '{}' \;
"program" vypisuje obsah pdb souboru a vypada to nadejne, ale nejak nevytvari txt soubory
[ged@localhost f-knihy]$ find . -iname '*.pdb' -exec txt2pdbdoc -d -D -v '{}' \;
.
.
.
.
n� podobn� vzducholodi, jako je V��ka. Zpr�va byla zaj�mav�, av�ak kdy� l�ka� pravil, �e Viktor Romovsk� a major by m�li obh�jit sv� prvenstv�, odpov�d�li oba mu�i skoro sou�asn�, �e vybudovali V��ku jen pro sebe.
�Na�li jsme sv�ho p��tele," pravil Viktor Romovsk�, �prosp�li jeho druh�m, zalo�ili osadu v srdci Braz�lie, nesm�rn� se pou�ili a u�ili tolik kr�s a vzru�uj�c�ch dojm� jako nikde jinde na sv�t�. Nen� toho dost? Sl�va je pom�jej�c�. Budeme pod�ln�ky na velik� dr�av�, kterou brzy zakoup�me. Vyslanectv� Brazilsk� republiky n�m zprost�edkuje koupi pozemk� a p�i nejbli��� cest� V��ky do Braz�lie se zastav�me v Rio de Janeiru, abychom koupi potvrdili. Douf�m, mil� p��tel�, �e se z��astn�te i druh�ho letu."
L�ka� i profesor nejen�e radostn� slibovali ��ast v p���t�m roce, ale dok 1once prosili, aby na n� Viktor
Romovsk� a major nezapomn�li. Vzpom�nali na b�lochy i na Indi�ny u Tapaj�su a slibovali, �e budou �asto pos�lat o sob� zpr�vy do horu�ick�ho z�mku.
Karel Romovsk� brzy p�ijede za profesorem do Plzn� a bude se u n�ho p�ipravovat ke zkou�ce na re�lku a pokus� se, aby byl p�ijat do �tvrt� t��dy.
�V p��rodopise jist� p�edstihne v�ecky spolu��ky," sliboval profesor Velebil, �a aby ani v jin�ch p�edm�tech nekulhal za ostatn�mi, o to se postar�me, vi�, Karle?"
KONEC
FRANTI�EK F L O S � VZDUCHOLOD� DO SRDCE BRAZ�LIE
Svazek �. 110
Text upravil Josef �ubrt. Ilustroval, V�clav Junek. Ob�lku navrhl James Jan��ek. Graficky upravil Jan Hejda Vydal jako svou 5384.. publikaci Albatros, nakladatelstv� pro d�ti a ml�de�, v Praze roku 1978. Odpov�dny redaktor Jan Petr Velkoborsk�. V�tvarn� redaktor Jarom�r Z�pal. Technick� redaktorka Jitka Pavl�kov�. Ze sazby p�sma Public vysadila a vytiskla Severografia. n. p., z�vod l, Liberec. 13,00 AA (text 11,29, ilustrace 1,71 13,02 VA. N�klad. 55000 v�tisk�. 2. upraven� vyd�n� (1. v Albatrosu. 1372078 14/54 Bro�ovan� v�tisk 7,� K�s
0
Ad�ptation �Josef �ubrt, 1971 Illustrations �V�clav Junek, 1971[ged@localhost f-knihy]$
Pripadne mi ze prikaz vystup nepresmerovava do souboru, ale jen na obrazovku.
Pri prevodu jednoho pdb souboru mi samostatny program txt2pdbdoc funguje.
Dekuji za rady
-
Chybí vám tam specifikovaný výstupní soubor.
for x in $(find . -iname '*.pdb'); do echo txt2pdbdoc -d -D -v $x $x; done | sed -e 's/.pdb/.txt/2' | sh;
Snad to pojede, píšu to z hlavy, teď to nemám kde testnout, předpoklad je že v cestě k pdb souboru nebude dvakrát ".pdb"
(nevím jestli se dá sedu předhodit "první .pdb od konce" takže mu dávám druhý ".pdb" v pořadí")
- pro vyzkoušení to spuste bez toho předhození vlkovi na konci "| sh", vypíše jen na obrazovku co má v úmyslu spouštět.
-
Tak bohuzel nekde je chyba:
z prvniho vypisu bych si tipnul na to ze tomuto scriptu vadi mezery v nazvech (je to ůrozsekane").
bash-3.2$ for x in $(find . -iname '*.pdb'); do echo txt2pdbdoc -d -D -v $x $x; done | sed -e 's/.pdb/.txt/2'
txt2pdbdoc -d -D -v ./f-knihy/Firsov ./f-knihy/Firsov
txt2pdbdoc -d -D -v Vladimír/Firsov_V-Darebák Vladimír/Firsov_V-Darebák
txt2pdbdoc -d -D -v z z
txt2pdbdoc -d -D -v Klokaní Klokaní
txt2pdbdoc -d -D -v planety.txt planety.pdb
txt2pdbdoc -d -D -v ./f-knihy/Forstchen ./f-knihy/Forstchen
txt2pdbdoc -d -D -v William/Forstchen_W-Aréna.txt William/Forstchen_W-Aréna.pdb
txt2pdbdoc -d -D -v ./f-knihy/Forstchen ./f-knihy/Forstchen
txt2pdbdoc -d -D -v William/Forstchen_W-1945.txt William/Forstchen_W-1945.pdb
txt2pdbdoc -d -D -v ./f-knihy/Forstchen ./f-knihy/Forstchen
txt2pdbdoc -d -D -v William/Forstchen_W-Feist_R_E-Čestný William/Forstchen_W-Feist_R_E-Čestný
txt2pdbdoc -d -D -v nepřítel.txt nepřítel.pdb
txt2pdbdoc -d -D -v ./f-knihy/Forstchen ./f-knihy/Forstchen
txt2pdbdoc -d -D -v William/Unie/Forstchen_W-3-Prapor William/Unie/Forstchen_W-3-Prapor
txt2pdbdoc -d -D -v svobody.txt svobody.pdb
txt2pdbdoc -d -D -v ./f-knihy/Forstchen ./f-knihy/Forstchen
txt2pdbdoc -d -D -v William/Unie/Forstchen_W-2-Unie William/Unie/Forstchen_W-2-Unie
txt2pdbdoc -d -D -v navěky.txt navěky.pdb
txt2pdbdoc -d -D -v ./f-knihy/Forstchen ./f-knihy/Forstchen
txt2pdbdoc -d -D -v William/Unie/Forstchen_W-1-Unie William/Unie/Forstchen_W-1-Unie
txt2pdbdoc -d -D -v ve ve
txt2pdbdoc -d -D -v zbrani.txt zbrani.pdb
txt2pdbdoc -d -D -v ./f-knihy/Forstchen ./f-knihy/Forstchen
txt2pdbdoc -d -D -v William/Válečné William/Válečné
txt2pdbdoc -d -D -v hry/Forstchen_W-Válečné hry/Forstchen_W-Válečné
txt2pdbdoc -d -D -v hry-2-Válečnický hry-2-Válečnický
txt2pdbdoc -d -D -v gambit.txt gambit.pdb
txt2pdbdoc -d -D -v ./f-knihy/Forstchen ./f-knihy/Forstchen
txt2pdbdoc -d -D -v William/Válečné William/Válečné
txt2pdbdoc -d -D -v hry/Forstchen_W-Válečné hry/Forstchen_W-Válečné
txt2pdbdoc -d -D -v hry-1-Alexandrijský hry-1-Alexandrijský
txt2pdbdoc -d -D -v prstenec.txt prstenec.pdb
txt2pdbdoc -d -D -v ./f-knihy/Forstchen ./f-knihy/Forstchen
txt2pdbdoc -d -D -v William/Válečné William/Válečné
txt2pdbdoc -d -D -v hry/Forstchen_W-Vělecné hry/Forstchen_W-Vělecné
txt2pdbdoc -d -D -v hry-3-Napoleonská hry-3-Napoleonská
txt2pdbdoc -d -D -v sázka.txt sázka.pdb
txt2pdbdoc -d -D -v ./f-knihy/Forstchen ./f-knihy/Forstchen
txt2pdbdoc -d -D -v William/Wing William/Wing
txt2pdbdoc -d -D -v Commander/Forstchen_W-WC4-Cena Commander/Forstchen_W-WC4-Cena
txt2pdbdoc -d -D -v svobody.txt svobody.pdb
txt2pdbdoc -d -D -v ./f-knihy/Forstchen ./f-knihy/Forstchen
txt2pdbdoc -d -D -v William/Wing William/Wing
txt2pdbdoc -d -D -v Commander/Forstchen_W-WC5-Na Commander/Forstchen_W-WC5-Na
txt2pdbdoc -d -D -v bojová bojová
bash-3.2$ for x in $(find . -iname '*.pdb'); do echo txt2pdbdoc -d -D -v $x $x; done | sed -e 's/.pdb/.txt/2' | sh;
txt2pdbdoc: can not open ./f-knihy/Firsov for input
txt2pdbdoc: can not open Vladimír/Firsov_V-Darebák for input
txt2pdbdoc: can not open z for input
txt2pdbdoc: can not open Klokaní for input
txt2pdbdoc: can not open planety.txt for input
txt2pdbdoc: can not open ./f-knihy/Forstchen for input
txt2pdbdoc: can not open William/Forstchen_W-Aréna.txt for input
txt2pdbdoc: can not open ./f-knihy/Forstchen for input
txt2pdbdoc: can not open William/Forstchen_W-1945.txt for input
txt2pdbdoc: can not open ./f-knihy/Forstchen for input
txt2pdbdoc: can not open William/Forstchen_W-Feist_R_E-Čestný for input
txt2pdbdoc: can not open nepřítel.txt for input
txt2pdbdoc: can not open ./f-knihy/Forstchen for input
txt2pdbdoc: can not open William/Unie/Forstchen_W-3-Prapor for input
txt2pdbdoc: can not open svobody.txt for input
txt2pdbdoc: can not open ./f-knihy/Forstchen for input
txt2pdbdoc: can not open William/Unie/Forstchen_W-2-Unie for input
txt2pdbdoc: can not open navěky.txt for input
txt2pdbdoc: can not open ./f-knihy/Forstchen for input
txt2pdbdoc: can not open William/Unie/Forstchen_W-1-Unie for input
txt2pdbdoc: can not open ve for input
txt2pdbdoc: can not open zbrani.txt for input
.
.
.
.
.
txt2pdbdoc: can not open MŠ.txt for input
txt2pdbdoc: can not open ./f-knihy/Franěk for input
txt2pdbdoc: can not open Jiří/Franěk_J-Pověst for input
txt2pdbdoc: can not open o for input
txt2pdbdoc: can not open žití for input
txt2pdbdoc: can not open a for input
-
Zkus to takto:
find . -iname '*.pdb' | while read F; do FN=${F##*/}; txt2pdbdoc -d -D -v "$F" "/tmp/${FN%.pdb}.txt"; done
Místo /tmp si pak dej cestu tam, kde chceš mít ty texťáky uložené.
-
Zkus to takto: find . -iname '*.pdb' | while read F; do FN=${F##*/}; txt2pdbdoc -d -D -v "$F" "/tmp/${FN%.pdb}.txt"; done
Místo /tmp si pak dej cestu tam, kde chceš mít ty texťáky uložené.
Dekuji tohle funguje jen to ma malou chybu. Mym cilem bylo soubory prevest a zaroven zachovat adresarovou strukturu coz tento script neumoznuje - soubory umisti do jedne slozky.
-
Aha, mezery. To mne ani nenapadlo že je někdo v názvech souborů používá ;)
Tak to zkusím třikrát jinak. A pokud to projde tak to tipuji na řádek č.2 ;)
find . -iname '*.pdb' -exec echo -e txt2pdbdoc -d -D -v '{}' '{}' \; | sed -e 's/.pdb/.txt/2' | sh
find . -iname '*.pdb' -exec echo -e txt2pdbdoc -d -D -v \"'{}'\" \"'{}'\" \; | sed -e 's/.pdb/.txt/2' | sh
find . -iname '*.pdb' -exec echo -e txt2pdbdoc -d -D -v "\"'{}'\"" "\"'{}'\"" \; | sed -e 's/.pdb/.txt/2' | sh
-
Dekuji tohle funguje jen to ma malou chybu. Mym cilem bylo soubory prevest a zaroven zachovat adresarovou strukturu coz tento script neumoznuje - soubory umisti do jedne slozky.
To by mělo být dokonce lehčí:find . -iname '*.pdb' | while read F; do txt2pdbdoc -d -D -v "$F" "${F%.pdb}.txt"; done
-
Dekuji tohle funguje jen to ma malou chybu. Mym cilem bylo soubory prevest a zaroven zachovat adresarovou strukturu coz tento script neumoznuje - soubory umisti do jedne slozky.
To by mělo být dokonce lehčí:find . -iname '*.pdb' | while read F; do txt2pdbdoc -d -D -v "$F" "${F%.pdb}.txt"; done
Dekuji mnohokrat funguje to na 100%. Jen moc nerozumim castem read F
- ze by to byl standardni vystup z funkce find (F) pro funkci read? a "${F%.pdb}
- ty % mi nejsou vubec jasna.?
-
Aha, mezery. To mne ani nenapadlo že je někdo v názvech souborů používá ;)
Tak to zkusím třikrát jinak. A pokud to projde tak to tipuji na řádek č.2 ;)
find . -iname '*.pdb' -exec echo -e txt2pdbdoc -d -D -v '{}' '{}' \; | sed -e 's/.pdb/.txt/2' | sh
find . -iname '*.pdb' -exec echo -e txt2pdbdoc -d -D -v \"'{}'\" \"'{}'\" \; | sed -e 's/.pdb/.txt/2' | sh
find . -iname '*.pdb' -exec echo -e txt2pdbdoc -d -D -v "\"'{}'\"" "\"'{}'\"" \; | sed -e 's/.pdb/.txt/2' | sh
Ty konstrukce \"'{}'\" \"... mi trochu pripominaji moje hratky se sedem a specialnimi znaky. Taky me z toho malem hrablo.
Tak bohuzel ani do tretice, nastesti ten postup find . -iname '*.pdb' | while read F; do txt2pdbdoc -d -D -v "$F" "${F%.pdb}.txt"; done
funguje spolehlive
-
Jen moc nerozumim castem read F
- ze by to byl standardni vystup z funkce find (F) pro funkci read? a "${F%.pdb}
- ty % mi nejsou vubec jasna.?
1 ano, read čte výstup z find, F je proměnná, můžeš si změnit na jakoukoliv jinou, třeba Fuj :)
2 jedná se o tzv. parameter expansion, česky třeba zde http://www.linuxexpres.cz/praxe/bash-21-dil, viz odstavec ${parametr%slovo}
-
arrange K+,
jednoduché a elegantní.
Neměl jsem den, napadaly mne konstrukce s -print0 | xargs -0 nebo s přenastavením $IFS a k tomu ještě ošklivé omezené sed a přitom o find |while read do vím...
Nemám rád mezery ;)
-
Jen moc nerozumim castem read F
- ze by to byl standardni vystup z funkce find (F) pro funkci read? a "${F%.pdb}
- ty % mi nejsou vubec jasna.?
1 ano, read čte výstup z find, F je proměnná, můžeš si změnit na jakoukoliv jinou, třeba Fuj :)
2 jedná se o tzv. parameter expansion, česky třeba zde http://www.linuxexpres.cz/praxe/bash-21-dil, viz odstavec ${parametr%slovo}
Jeste takovy blby dotaz konstrukce ${F%.pdb}.txt
tedy vlastne resi nahradu pdb za txt? Slo by misto toho pouzit napr. vnoreny sed?