Provedení přikazu a uložení výsledku

vyvojar

Provedení přikazu a uložení výsledku
« kdy: 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.
« Poslední změna: 30. 11. 2011, 09:57:31 od Petr Krčmář »


ghost

Re:Provedení přikazu a uložení výsledku.
« Odpověď #1 kdy: 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...

vyvojar

Re:Provedení přikazu a uložení výsledku.
« Odpověď #2 kdy: 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

T-T

Re:Provedení přikazu a uložení výsledku.
« Odpověď #3 kdy: 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 {} \;

Kit

Re:Provedení přikazu a uložení výsledku
« Odpověď #4 kdy: 30. 11. 2011, 09:59:32 »
convmv