Portál AbcLinuxu, 10. května 2025 08:10
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
ls -la *.DBF | awk '{print "iconv -c -f\"CP852\" -t\"CP1250\" "$9" > extrakt/"$9}' > prekoduj.batobsah 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.batTo 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.