Portál AbcLinuxu, 8. prosince 2025 19:40
Take jste nuceni v praci pouzivat Windows a kdyz si chcete/potrebujete neco naskriptovat, tak jste bez nastroju typu grep, sed, sort a spol. jak bez prave ruky? Treba vam usnadni praci port GNU utilit na Windows. Nevyzaduje instalace ani konfiguraci, zabira minimum mista a nepouziva zanou emulacni vrstvu typu Cygwin.
Kazdemu GNU nastroji odpovida jeden .exe soubor a diky DOSovym rouram a presmerovani se z nich da slepit celkem plnohodnotna nahrazka toho, na co je clovek z UNIXu/Linuxu zvykly. Domovska stranka projektu je unxutils.sourceforge.net.
Par postrehu k divnostem DOSovych skriptu:
Escapovani uvozovek se provadi pomoci backslashe.
Escapovani procenta se provadi pomoci zdvojeni.
Retezce se uzaviraji do uvozovek.
Promenne pouzivaji procento misto dolaru z Bashe.
Ve for cyklu se procento zdvojuje a jmeno promenne pro iterator musi mit 1 znak (pry jak v ktere verzi DOSu).
Roura funguje bez problemu, jde propojit vic rour za sebou.
Presmerovani do souboru i append funguje take stejne jako v Bashi, stderr neexistuje.
DOS2UNIX se da napsat pomoci sed.exe "s/.$//".
Spojeni kazde dvojice radku do jednoho dvojradku pak sed.exe "N; s/\n//".
Viz. napr. SED Oneliners.
Reportovani nad daty (mezisoucty, maxima apod.) se da provest pomoci minidatabaze SQLite a importu/exportu ve formatu CVS. Domovska stranka je www.sqlite.org
Enjoy!
Tiskni
Sdílej:
cat schema.ddl|sed 's/^/\ /'Bez jakyhokoliv premysleni behem 5s vyreseno. Holt OOP shell neni nejlepsi na vsechno.
cat schema.ddl | % { echo " $_" }
A navíc učit se na každym systému všechno včetně scriptování a dokonce i programování od znova je fakt zábavička.
dir | less. O tom jsem vzdycky snil..
dir |more. ale less je less, co si budem povidat.
btw funguje ti v tom lessu diakritika a formatovani cisel? mam tu taky nejake gnutilitky, puvod neznamy. a z less.exe mi misto í leze <A1>, misto mezery oddelujici tisice mam <FF>...
ze bych upgradoval, jestli to v tech tvych jede spravne.
sqlite3 MyDB.db "SELECT * FROM Table1; SELECT * FROM Table2;", nebo sada prikazu v externim souboru - napr. sqlite3 -init MyScript.sql MyDB.db ".exit" (.exit je tam proto, ze se mi skript pod DOSem nechtel sam ukoncovat - mozna to jindy neni potreba. YMMV)
Bohuzel nejde predat vic metaprikazu jako jeden argument (napr. zaroven nastavit .width a .header), takze je potreba pouzit externi soubor. Pokud to jde a jen jsem tupej, pripiste sem navod, pls! B-)
Pro pocitani rozdilu mezi timestampy ve formatu je idealni pouzit funkci pro konverzi na UNIXovy cas v sekundach od roku 1970, napr. strftime("%s",Odchod) - strftime("%s",Prichod). Timestamp by mel byt ve formatu YYYY-MM-DD HH:MM:SS - podle dikusi na netu jsou s jinym formatem pry problemy...
source-highlightu tam stejně není
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.