GNU/Linux >> Linux の 問題 >  >> Linux

「日付」の出力から先行ゼロを削除する方法、またはそのような10進数の8進数の解釈を回避する方法は?

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

date +"%H hours and %M minutes"

お祭りを使って言いますが、「ゼロナインアワー」と書いてあります。「ナインアワー」と言いたいです!

しかし、日付は常に私に09を与えます…それで、bashがそれをたった9にするのは簡単でしょうか?

複雑なスクリプトで私は次のように試しました

printf %d 09

しかし失敗します..8進数ではありません🙁

何かアイデアはありますか?

承認された回答:

  • あなたの場合、-を追加することで、ゼロパディングを無効にすることができます。 %の後 日付の形式文字列:%-H

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

    • - (ハイフン)フィールドを埋めないでください
    • _ (アンダースコア)スペース付きのパッド
    • (ゼロ)ゼロのあるパッド
    • ^ 可能であれば大文字を使用してください
    • # 可能であれば反対のケースを使用してください

    日付マニュアルを参照

  • 異なるベースで、bashで数値を解釈したい場合

    • 先行0が付いた定数は、8進数として解釈されます。
    • 先頭の0xまたは0Xは16進数を示します。
    • それ以外の場合、数値は[base#] nの形式になります。ここで、基数は算術基数を表す2〜64の10進数であり、nはその基数の数値です

    したがって、数値を10進数として解釈するには、10#nを使用します。 フォーム、例えば。 10#09

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

    bashマニュアルの算術評価のセクションを参照してください。


Linux
  1. Linuxでグループにユーザーを追加またはグループから削除する方法

  2. `date`に別のタイムゾーンからの時間を出力させるにはどうすればよいですか?

  3. Utf-8ファイルからBOMを削除する方法は?

  1. Linuxからジェンキンスを完全に削除するにはどうすればよいですか

  2. USB から iso 9660 を削除するには?

  3. 「vi」のコマンドラインから行番号が表示されたファイルを開くにはどうすればよいですか?

  1. Ubuntu から aria2 をアンインストールする方法

  2. テキスト ファイルから改行を削除するにはどうすればよいですか?

  3. ffmpeg出力から継続時間を抽出するには?