Portál AbcLinuxu, 26. října 2025 23:13
iconv -f"CP852" -t"ISO-8859-2" vstupny_subor.dbf > prekodovany_subor.dbfAvsak vzhladom na objem dat nechcem, aby vytvaralo dalsi 'prekodovany_subor.dbf', ale nech prekoduje 'vstupny_subor.dbf', bez potreby vytvorenia dalsieho suboru (aby sa objem dat nezdvojnasobil) Viete mi poradit. Dakujem
, ja som to tak riesil, a je to ok.
ls -la *.DBF | awk '{print "iconv -c -f\"CP852\" -t\"CP1250\" "$9" > extrakt/"$9}' > prekoduj.bat
obsah suboru 'prekoduj.bat' je:
iconv -f"CP852" -t"ISO-8859-2" subor1.DBF > extrakt/subor1.DBF iconv -f"CP852" -t"ISO-8859-2" subor2.DBF > extrakt/subor2.DBF ...to je sposob, ktoremu som sa chcel vyhnut - prekodovane subory ukladam do podaresara extrakt Ak som dobre pochopil, tak vy navrhujete iconv -f"CP852" -t"ISO-8859-2" subor1.DBF > extrakt/subor1.DBF && mv extrakt/subor1.DBF . davkovy subor s takymto obsahom teda vytvorim:
ls -la *.DBF | awk '{print "iconv -c -f\"CP852\" -t\"CP1250\" "$9" > extrakt/"$9 "&& mv extrakt/"$9" ."}' > prekoduj.bat
To znamena, ze podadresar extrakt bude pouzity len ako medzisklad.
Hm, aj to je riesenie.
Dakujem.
S.
iconv uměl sám od sebe konvertovat znakovou sadu v DBF souborech. Občas to asi projde, ale obávám se, že by pokus o překonvertování kódování v hlavičce souboru nebo v číselných položkách mohl nadělat pořádnou paseku.
Jinak by možná pomohla konverze do CSV/XML (nebo něčeho jiného čistě textového), konverze kódování a konverze zpět do DBF. Nebo si na to rovnou napsat nějaký udělátor, formát DBF není moc složitý (a snad na to existuje i nějaká knihovna), kdysi dávno jsem si napsal utilitku na české seřazení záznamů v databázi…
~/tmp$ ls -l > link1
~/tmp$ ln link1 link2
~/tmp$ ls -li link{1,2}
1605664 -rw-r--r-- 2 mike users 34561 2006-01-19 19:23 link1
1605664 -rw-r--r-- 2 mike users 34561 2006-01-19 19:23 link2
~/tmp$ sed -e 's/-/+/g' -i link1
~/tmp$ ls -li link{1,2}
1605669 -rw-r--r-- 1 mike users 34561 2006-01-19 19:23 link1
1605664 -rw-r--r-- 1 mike users 34561 2006-01-19 19:23 link2
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.