Naredbe za koje (možda) niste znali 3: units
U seriji članaka pod nazivom "Naredbe za koje (možda) niste znali" pokušat ćemo vas upoznati s nekim naredbama i dodatnim priručnim alatima koji se ili standardno nalaze na Unix i Linux sustavima, ili se često dodaju zbog svoje uporabnosti i popularnosti. S jednim takvim alatom smo vas već upoznali (ipcalc), a ovim člankom počinjemo novi ciklus.
Prvi alat s kojim ćemo vas upoznati je "units". Kao što mu samo ime govori, radi se o praktičnom alatu za pretvorbu raznih mjernih jedinica u naredbenoj liniji.
Pretvorba se može raditi interaktivno ili neinteraktivno, primjerice ukoliko želimo saznati koliko litara ima u jednom galonu:
$ units "1 gallons" liters
* 3.7854118
/ 0.26417205
$ units
2438 units, 71 prefixes, 32 nonlinear units
You have: 1 gallons
You want: liters
* 3.7854118
/ 0.26417205
You have:
Ctrl+C
Izlazak iz interaktivnog načina rada je moguć uporabom standardne kombinacije tipki Ctrl+C. Koji ćete oblik rabiti, ovisi o Vama.
Malo ćemo objasniti ispis. Zvjezdica ispred vrijednosti znači da je vrijednost pretvorbe dobivena linearno, množenjem sa nekim koeficijentom. Iza zvjezdice je, naravno, vrijednost u traženim jedinicama. Druga linija određuje obrnuti koeficijent, s kojim možemo dobiti originalnu mjernu jedinicu (1 litra je 0.264 * 1 galona).
Za razliku od linearnih, postoje i nelinearne pretvorbe, kao što je primjerice pretvorba iz stupnjeva Fahrenheita u stupnjeve Celzija.
$ units "tempF(80)" tempC
26.666667
Ovaj put, dakako, nema zvjezdice, a treba uočiti i drugačiji način pisanja vrijednosti za temperaturu, koja se piše slično pozivanju funkcije u C-u. Interaktivno, ne trebaju navodnici koji štite da ljuska ne interpretira zagrade:
$ units
You have: tempF(80)
You want: tempC
26.666667
Neke pretvorbe nisu očigledne, kao recimo pretvorba iz milja u kilometre:
$ units
You have: 50 mph
You want: kmph
conformability error
22.352 m / s
1.5091905e+36 s / kg m
Ukoliko dobijete poruku "conformability error", znači da jedinice nisu uskladive, i ispisat će se njihove standardizirane vrijednosti (50 milja na sat je oko 22 metra u sekundi, i definicija jedinice koju program nije razumio). Ispravan način definicije kilometra na sat nije ni "km/h", ni "kmh", nego "kph":
$ units
You have: 50 mph
You want: kph
* 80.4672
/ 0.012427424
Još sigurnije je koristiti govorni oblik "kilometers per hour", pri čemu britanski i američki način pisanja ne igraju ulogu (mogli smo napisati i "kilometres").
Ukoliko samo želite vidjeti definiciju neke jedinice, primjerice koliko je to 1 tekuća unca:
$ units floz
Definition: fluidounce = usfluidounce = 1|16 uspint = 2.957353e-05 m^3
Dakle, 1 tekuća unca je 0.3 decilitara.
Alat units podržava mnogo više od ovih uobičajenih mjernih jedinica, pa i neke arhaične i napuštene. Svakako preporučujemo da pogledate man stranicu i datoteku s pretvorbama /usr/share/misc/units.dat, jer ćete tamo naći mnoštvo informacija koje će vam zatrebati, poglavito zbog pravilnog pisanja mjernih jedinica i njihovih parametara.
Ovaj zgodni alat možete instalirati, kao i uvijek, preko apt-get naredbe:
# apt-get install units
- Inačica za ispis
- Logirajte se za dodavanje komentara
- PDF version