Portál AbcLinuxu, 30. dubna 2025 11:24
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 " $_" }
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-highlight
u tam stejně není ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.