GNU/Linux >> Znalost Linux >  >> Linux

Jak odstranit úvodní nuly z výstupu ‚datum‘ nebo se vyhnout osmičkovému výkladu takových desetinných čísel?

Mám toto:

date +"%H hours and %M minutes"

Používám festival, abych to řekl... ale říká to jako:„nula devět hodin“.. Chci, aby to říkalo „devět hodin“!

ale datum mi vždy dá 09... tak by mě zajímalo, jestli bash může snadno udělat z toho jen 9?

ve složitém skriptu, který jsem zkoušel jako

printf %d 09

ale selže.. ne osmičkové 🙁

nějaký nápad?

Přijatá odpověď:

  • Ve vašem případě můžete jednoduše zakázat nulové odsazení přidáním - po % ve formátovacím řetězci data:%-H

    Ve výchozím nastavení se do číselných polí vkládá datum nulami. Za „%“ mohou následovat následující volitelné příznaky:

    • - (pomlčka) nevyplňujte pole
    • _ (podtržítko) podložka s mezerami
    • _ (nulový) blok s nulami
    • ^ pokud je to možné, používejte velká písmena
    • # pokud je to možné, použijte opačný případ

    Viz manuál data

  • Pokud chcete interpretovat číslo v jiném základu, v bash

    • Konstanty s počáteční 0 jsou interpretovány jako osmičková čísla.
    • Začátek 0x nebo 0X označuje hexadecimální.
    • Jinak mají čísla tvar [základ#]n, kde základ je desetinné číslo mezi 2 a 64 představující aritmetický základ a n je číslo v tomto základu

    Chcete-li tedy číslo interpretovat jako desítkové, použijte 10#n formě, např. 10#09

    echo $((10#09*2))
    18
    

    Viz část Aritmetické vyhodnocení v příručce bash.


Linux
  1. Jak odstraním nové řádky z textového souboru?

  2. Jak získat výstup z gdb.execute v PythonGDB (GDB 7.1)?

  3. Jak převést výstup z grep do cp?

  1. Jak zajistit, aby „datum“ vydalo čas z jiného časového pásma?

  2. Jak odstranit jeden řádek z historie?

  3. Jak mohu odstranit jenkins úplně z linuxu

  1. Jak odinstalovat aria2 z Ubuntu

  2. Jak extrahovat dobu trvání z výstupu ffmpeg?

  3. Jak odstranit iso 9660 z USB?