GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Menghapus Nol Awal Dari Output 'tanggal' Atau Menghindari Interpretasi Oktal dari Angka Desimal Tersebut?

Saya punya ini:

date +"%H hours and %M minutes"

Saya menggunakan festival untuk mengatakannya.. tapi tertulis seperti:"nol sembilan jam".. Saya ingin mengatakan "sembilan jam"!

tapi tanggal selalu memberi saya 09… jadi saya ingin tahu apakah bash dapat dengan mudah membuatnya menjadi hanya 9?

dalam skrip kompleks saya mencoba seperti

printf %d 09

tapi gagal.. bukan oktal

ada ide?

Jawaban yang Diterima:

  • Dalam kasus Anda, Anda cukup menonaktifkan padding nol dengan menambahkan - setelah % dalam format string tanggal:%-H

    Secara default, bidang numerik bantalan tanggal dengan nol. Bendera opsional berikut mungkin mengikuti '%':

    • - (tanda hubung) jangan mengisi bidang
    • _ (garis bawah) pad dengan spasi
    • (nol) pad dengan nol
    • ^ gunakan huruf besar jika memungkinkan
    • # gunakan kasus sebaliknya jika memungkinkan

    Lihat manual tanggal

  • Jika Anda ingin menafsirkan nomor di basis yang berbeda, di bash

    • Konstanta dengan awalan 0 ditafsirkan sebagai bilangan oktal.
    • A 0x atau 0X di depan menunjukkan heksadesimal.
    • Jika tidak, bilangan berbentuk [basis#]n, dengan basis adalah bilangan desimal antara 2 dan 64 yang mewakili basis aritmatika, dan n adalah bilangan pada basis tersebut

    Jadi, untuk menafsirkan angka sebagai desimal, gunakan 10#n bentuk, misalnya 10#09

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

    Lihat bagian Evaluasi Aritmatika dari bash manual.


Linux
  1. Bagaimana Cara Menghapus Satu Baris Dari Sejarah?

  2. Cara menghapus aria2 dari Ubuntu

  3. Bagaimana cara mendapatkan output dari gdb.execute di PythonGDB (GDB 7.1)?

  1. Bagaimana cara menyalurkan output dari grep ke cp?

  2. Bagaimana saya bisa menghapus jenkins sepenuhnya dari linux

  3. Bagaimana cara menghapus VS Code &pengaturan dari Ubuntu?

  1. Cara Menambah atau Menghapus Pengguna dari Grup di Linux

  2. Bagaimana Cara Membuat `date` Menghasilkan Waktu Dari Zona Waktu yang Berbeda?

  3. Bagaimana saya bisa membuka file dengan nomor baris yang ditampilkan dari baris perintah di 'vi'?