Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: vyvojar 29. 11. 2011, 22:42:40
-
Nikde nemuzu najit jak provest prikaz, ve kterem je promenna a ulozit do jine promenne vysledek.
Mam nekolik souboru a potrebuju je prekonvertovat do utf8, rekl jsem si teda, ze se podivam na shell programming.
Takze najdu si soubory .c a .h :
ls | grep "\.[ch]" | xargs ./mujScript.sh
To by melo pro vsechny soubory spustit ten muj script s tim, ze ve skriptu bude v promenne $1 nazev toho souboru.
Ja ve skriptu chci provest nejak prikaz
iconv -f ISO-8859-2 -t UTF-8 $1
a vysledek ulozit do promenne, abych jeji obsah vzapeti ulozil do souboru $1.
na netu jsem nasel nejake zpusoby se zpetnyma uvozovkama, tam mi ale nefungovala ta promenna, pak zase $(prikaz), to zase
vypisovalu uplne nejake nesmysly, kdyz jsem tam dal ten prikaz s tou promennou. Prosim co nejrychleji, budu zatim dal hledat dal.
Uz z toho mam trosicku nervicky.
-
A neco takoveho?
find . -maxdepth 1 -name '*.[ch]' -exec iconv -f ISO-8859-2 -t UTF-8 {} \;
Kdyztak me nekdo opravte...
-
Iconv vypisuje vysledek na stdout, ne zpet do toho souboru, takze to asi nepujde ne? Zatim jsem zadne reseni nenasel.
Kdyz ve skriptu provedu
res=`iconv -f ISO-8859-2 -t UTF-8 proj3.c`
echo $res
tak to vypise data, ktere i vubec nejsou v tom souboru proj3.c, to nechapu vubec, uplne nejaky pomateny vysledek
-
Tohle by mohlo fungovat:
funkce() {
iconv -f ISO-8859-2 -t UTF-8 “$1“ > “$1.q“
mv “$1.q“ “$1“
}
find . -maxdepth 1 -name '*.[ch]' -exec funkce {} \;
-
convmv