日付を「10月1日20:00」から「10月1日20:00」形式(スペースパディング)に変換するには?

日付を「10月1日20:00」から「10月1日20:00」形式(スペースパディング)に変換するには?

これはゼロなしでOct 01印刷する必要があります。Oct 1たとえば、10月と1日の間に2つのスペースが必要ですOct 1

答え1

GNUの使用date:

date -d "Oct 01 20:00" "+%b %_d %k:%M"

どこ:

  • %b:ロケールの月名の略語(例:Jan)
  • %_d:1月のある日(空白が埋まる)
  • %k:時間(0..23)
  • %M:分(00..59)

出力:

Oct  1 20:00

答え2

Mmm dd HH:MMこれらの文字列が一部のテキストで見つかり、特定のパターンに従う場合にのみ、GNUまたはFreeBSDシステム(およびその派生システム)から変換するには、次のようにします。

sed -E "s/($(locale abmon|tr ';' '|')) 0([0-9] [0-2][0-9]:[0-5][0-9])/\1  \2/g"

locale abmon発信者のローカライズ設定に合わせて、出力から月名の省略形のリストを取得します。LC_ALL=C locale abmon英語の月名の略語を強制的に使用するために使用されます。

関連情報