「Date」出力から先行ゼロを削除したり、これらの10進数の8進数解釈を防ぐにはどうすればよいですか?

「Date」出力から先行ゼロを削除したり、これらの10進数の8進数解釈を防ぐにはどうすればよいですか?

私はこれを持っています:

date +"%H hours and %M minutes"

お祭りだと表現したんだけど..「ゼロナインアワー」と書いていますね..「ナインアワー」と言ってほしい!

しかし、日付は常に09を提供するので、bashが簡単に9を作成できるかどうか疑問に思います。

私が試した複雑なスクリプトから

printf %d 09

しかし、失敗しました。8進数ではありません。 :(

どんなアイデアがありますか?

ベストアンサー1

  • あなたの場合、-日付フォーマット文字列の後に単に追加することでゼロパディングを無効にすることができます。%%-H

    デフォルトでは、日付は数値フィールドをゼロで埋めます。 「%」の後には、次のオプションのフラグが続くことがあります。

    • -(ハイフン)このフィールドを埋めないでください。
    • _(下線)スペース付きパッド
    • 0(ゼロ) 0で埋める
    • ^可能であれば大文字を使用してください
    • #可能であれば逆の場合を使用してください

    バラよりデートブック

  • Bashで他のベースの数を解釈したい場合

    • 0で始まる定数は8進数として解釈されます。
    • 前に0xまたは0Xがある場合は、16進数を表します。
    • それ以外の場合、数値は [base#]n 形式を取ります。ここで、base は算術下数を表す 2 ~ 64 の 10 進数で、n は対応する下数の数字です。

    したがって、数値を10進数として解釈するには、10#n次の形式を使用します。10#09

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

    バラより算術評価Bash マニュアルの一部です。

おすすめ記事