Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: vyvojar 29. 11. 2011, 22:42:40

Název: Provedení přikazu a uložení výsledku
Přispěvatel: 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 :

Kód: [Vybrat]
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

Kód: [Vybrat]
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.
Název: Re:Provedení přikazu a uložení výsledku.
Přispěvatel: ghost 29. 11. 2011, 23:08:05
A neco takoveho?
find . -maxdepth 1 -name '*.[ch]' -exec iconv -f ISO-8859-2 -t UTF-8 {} \;

Kdyztak me nekdo opravte...
Název: Re:Provedení přikazu a uložení výsledku.
Přispěvatel: vyvojar 29. 11. 2011, 23:30:01
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
Název: Re:Provedení přikazu a uložení výsledku.
Přispěvatel: T-T 30. 11. 2011, 09:26:56
Tohle by mohlo fungovat:
Kód: [Vybrat]
funkce() {
iconv -f ISO-8859-2 -t UTF-8 “$1“ > “$1.q“
mv “$1.q“ “$1“
}
find . -maxdepth 1 -name '*.[ch]' -exec funkce {} \;
Název: Re:Provedení přikazu a uložení výsledku
Přispěvatel: Kit 30. 11. 2011, 09:59:32
convmv