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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2013-10-19 14:22:29

  P@blo - Nadworny matematyk

P@blo
Nadworny matematyk
Skąd: Wrocław v Jasło
Zarejestrowany: 2010-11-11

[bash]Wstaw kropkę w czwarte miejsce od końca (prawej strony)

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


ThinkPadX220i
| Procesor: Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz |
|  Debian: sid   |   Arch: amd64   |   Sound: alsa   |
| No DE | WM: DWM  |  DM: .bash_profile  |  BIOS+MBR |

Offline

 

#2  2013-10-19 16:33:51

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: [bash]Wstaw kropkę w czwarte miejsce od końca (prawej strony)

Tylko musisz jakoś skasować końcowe zera:

Kod:

echo 12345/1000 | bc -l
12.34500000000000000000

Dopisek:
brzydko, bo brzydko (i pewnie zabiłem kilka kotków), ale działa:

Kod:

LANG=C printf "%.3f\n" `echo 12345/1000 | bc -l`
12.345

Ostatnio edytowany przez azhag (2013-10-19 16:38:57)


Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#3  2013-10-19 17:02:38

  P@blo - Nadworny matematyk

P@blo
Nadworny matematyk
Skąd: Wrocław v Jasło
Zarejestrowany: 2010-11-11

Re: [bash]Wstaw kropkę w czwarte miejsce od końca (prawej strony)

Dzięki. Nie ważne że brzydko... To i tak będzie gdzieś w kodzie głęboko ;)


ThinkPadX220i
| Procesor: Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz |
|  Debian: sid   |   Arch: amd64   |   Sound: alsa   |
| No DE | WM: DWM  |  DM: .bash_profile  |  BIOS+MBR |

Offline

 

#4  2013-10-19 17:16:11

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: [bash]Wstaw kropkę w czwarte miejsce od końca (prawej strony)

To ja jeszcze jednego kotka....

Kod:

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)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5  2013-10-19 19:39:37

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: [bash]Wstaw kropkę w czwarte miejsce od końca (prawej strony)

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.


Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#6  2013-10-19 20:50:31

  prosze - Użytkownik

prosze
Użytkownik
Zarejestrowany: 2012-09-25

Re: [bash]Wstaw kropkę w czwarte miejsce od końca (prawej strony)

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:

Kod:

fakdfal
14867
kgjafdfrf
8423685

Przykład na sed:

Kod:

echo -e "fakdfal\n14867\nkgjafdfrf\n8423685" | sed 's/...$/.&/'
fakd.fal
14.867
kgjafd.frf
8423.685

Przykład na awk:

Kod:

echo -e "fakdfal\n14867\nkgjafdfrf\n8423685" | awk '{sub(/...$/, ".&")}1'
fakd.fal
14.867
kgjafd.frf
8423.685

Offline

 

#7  2013-10-19 21:57:59

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: [bash]Wstaw kropkę w czwarte miejsce od końca (prawej strony)

No tak, w sumie powinienem się domyślić (przynajmniej seda, z awka to ja praktycznie tylko printować potrafię). Dzięki :)


Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)