Nowe posty

Autor Wątek: Konwersja stringa na wartości decymalne  (Przeczytany 1162 razy)

sovolex

  • Gość
Konwersja stringa na wartości decymalne
« dnia: 2015-07-02, 11:06:47 »
Mam problem z konwersją całego stringa na wartości decymalne rozdzielone kropką. Wiem jak dokonać konwersji jednej litery na wartość decymalną:
echo Litera:
read L
echo -n ${L} | od -i | head -1 | cut -b 10- | tr -d " "
Pewnie trzeba ująć to jakoś w pętlę. Zamierzam uzyskać taki efekt:
string wejściowy:
test123
wynik:
116.101.115.116.49.50.51

Z góry dzięki za pomoc.

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2810
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Konwersja stringa na wartości decymalne
« Odpowiedź #1 dnia: 2015-07-02, 12:01:05 »
> [b]echo -n test123 | hexdump -e '1/1 ".%d"'|cut -c 2-[/b]
116.101.115.116.49.50.51
?
cut wycina pierwszą kropkę
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

sovolex

  • Gość
Konwersja stringa na wartości decymalne
« Odpowiedź #2 dnia: 2015-07-02, 12:06:17 »
I o to chodziło. Kombinowałem z pętlą, a jednak da się bez. Dzięki wielkie.

sovolex

  • Gość
Konwersja stringa na wartości decymalne
« Odpowiedź #3 dnia: 2015-07-02, 13:22:37 »
Jeszcze mała uwaga. W momencie kiedy znaki się potarzają jeden po drugim, wyświetla * zamiast powtarzać tę samą sekwencję. Przykładowo dla zzz wyświetla 122*

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 2810
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Konwersja stringa na wartości decymalne
« Odpowiedź #4 dnia: 2015-07-02, 13:46:45 »
> [b]echo -n test123333 | hexdump -v -e '1/1 ".%d"'|cut -c 2-[/b]
116.101.115.116.49.50.51.51.51.51
?
Dodatkowy -v wyłącza zwijanie powtórzeń do *. Ale to już mogłeś sobie doczytać w man do hexdump-a.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

sovolex

  • Gość
Konwersja stringa na wartości decymalne
« Odpowiedź #5 dnia: 2015-07-02, 14:26:04 »
Rzeczywiście, następnym razem otworzę mana. Problem rozwiązany. Dziękuje.