날짜를 "10월 1일 20:00"에서 "10월 1일 20:00" 형식(공백 패딩)으로 변환하는 방법은 무엇입니까?

날짜를 "10월 1일 20:00"에서 "10월 1일 20:00" 형식(공백 패딩)으로 변환하는 방법은 무엇입니까?

이는 0 없이 Oct 01인쇄되어야 합니다 . Oct 1예를 들어 10월과 1일 사이에 두 개의 공백이 필요합니다 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영어 월 이름 약어를 강제로 사용하도록 하기 위해 사용됩니다 .

관련 정보