Portál AbcLinuxu, 12. května 2025 11:59

Dotaz: BASH - formátování čísel

29.7.2016 06:54 david
BASH - formátování čísel
Přečteno: 431×
Odpovědět | Admin
Jak zformátovat v Bashi číselný údaj vždy na tři místa s desetinnou tečkou ?

Příklad:
1000 - 1.00 K
33000 - 33.0 K
100000 - 100 K
330000 - 330 K
1000000 - 1.00 M
33000000 - 33.0 M
100000000 - 100 M
330000000 - 330 M
1000000000- 1.00 G
330000000000 - 330 G

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

29.7.2016 08:44 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: BASH - formátování čísel
Odpovědět | | Sbalit | Link | Blokovat | Admin
Já jsem si v php na stránku dělal něco podobného takže se můžeš inspirovat.
    $velikost_souboru=filesize($filename);
    $jednotky=" B";

    if($velikost_souboru > 1000)
     {
     $velikost_souboru= round($velikost_souboru/1000, 2);
     $jednotky="kB";
     }

    if($velikost_souboru > 1000)
     {
     $velikost_souboru= round($velikost_souboru/1000, 2);
     $jednotky="MB";
     }

    printf(" %01.2f ", $velikost_souboru, $jednotky);
29.7.2016 08:48 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: BASH - formátování čísel
Edit: z printf mě vypadl %s
printf("%01.2f %s", $velikost_souboru, $jednotky);
30.7.2016 17:44 david
Rozbalit Rozbalit vše Re: BASH - formátování čísel
Trochu delší, ale zato přehledné řešení. Takže funguje a v podstatě vyřešeno.
Bedňa avatar 31.7.2016 19:35 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: BASH - formátování čísel
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na human readable formát slúži príkaz numfmt, príkaz:
cislo=55555;
numfmt --to=si --padding=7 $cislo
Ti vráti: 56K

Pre 13000000 vráti 13MB,

pre 13000000000 vráti 13GB,

pre 13000000000000 vráti 13TB

pre 13000000000000000 vráti 13PT

pre 13000000000000000000 vráti 13EB.
KERNEL ULTRAS video channel >>>
Bedňa avatar 31.7.2016 19:36 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: BASH - formátování čísel
Teda vráti to bez toho "B" na konci.
KERNEL ULTRAS video channel >>>
1.8.2016 15:57 frk
Rozbalit Rozbalit vše Re: BASH - formátování čísel
mají tam bug, kilo se píše s malým k.
Bedňa avatar 1.8.2016 16:19 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: BASH - formátování čísel
Default to vracia s veľkým "K", ale to chcel aj tazatel.
KERNEL ULTRAS video channel >>>

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.