Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Hej,
Mnie to trochę przerasta. Mam wynik temperatury, który jest bez kropki no i chce ją tam wstawić. Ważne jest żeby ta kropka pojawiła się od trzech 'zer' od końca (prawej strony) a nie od lewej bo jak wiadomo temperatura może być różna. Przykładowo wynik temp to 9123 czyli 9.123 ale może być 12345 czyli 12.345. Jak to zrobić poprawnie w bash'u? Najlepiej sed.
Z góry dzięki
pozdro
Offline
Tylko musisz jakoś skasować końcowe zera:
echo 12345/1000 | bc -l 12.34500000000000000000
Dopisek:
brzydko, bo brzydko (i pewnie zabiłem kilka kotków), ale działa:
LANG=C printf "%.3f\n" `echo 12345/1000 | bc -l` 12.345
Ostatnio edytowany przez azhag (2013-10-19 16:38:57)
Offline
Dzięki. Nie ważne że brzydko... To i tak będzie gdzieś w kodzie głęboko ;)
Offline
To ja jeszcze jednego kotka....
echo "scale=3; 12345/1000" |bc 12.345
Biedny kiciuś ;(
A tu sznurek:
http://en.wikipedia.org/wiki/Bc_%28programming_lang … shell_scripts
Pozdro
;-)
Ostatnio edytowany przez Jacekalex (2013-10-19 17:22:25)
Offline
Jacekalex napisał(-a):
To ja jeszcze jednego kotka....
Tu akurat żaden kotek chyba specjalnie nie ucierpiał.
Oczywiście obydwa sposoby zakładają, że mamy do czynienia z liczbami. W sumie sam byłbym ciekaw jakiegoś seda, który wstawia coś w wyznaczone miejce niezależnie od rodzaju wejściowych danych.
Offline
azhag napisał(-a):
Oczywiście obydwa sposoby zakładają, że mamy do czynienia z liczbami. W sumie sam byłbym ciekaw jakiegoś seda, który wstawia coś w wyznaczone miejce niezależnie od rodzaju wejściowych danych.
azhag, specjalnie dla ciebie ;)
Zawartość pliku:
fakdfal 14867 kgjafdfrf 8423685
Przykład na sed:
echo -e "fakdfal\n14867\nkgjafdfrf\n8423685" | sed 's/...$/.&/' fakd.fal 14.867 kgjafd.frf 8423.685
Przykład na awk:
echo -e "fakdfal\n14867\nkgjafdfrf\n8423685" | awk '{sub(/...$/, ".&")}1' fakd.fal 14.867 kgjafd.frf 8423.685
Offline
No tak, w sumie powinienem się domyślić (przynajmniej seda, z awka to ja praktycznie tylko printować potrafię). Dzięki :)
Offline
Strony: 1