날짜 출력에서 ​​선행 0을 제거합니다.

날짜 출력에서 ​​선행 0을 제거합니다.

날짜를 다음 형식으로 표시하기 위해 date 명령에 대한 별칭을 만들었습니다.

2013.06.14.12.10.02

다음 명령을 사용하십시오.

alias date = date +"%Y.%m.%d.%H.%M.%S"

출력에서 선행 0을 제거하려는 것을 제외하고는 모든 것이 정상입니다.

형식을 변경하여 이를 달성할 수 있는 방법은 없습니다. 나는 이것이 출력을 sed및 와 같은 다른 명령으로 파이프해야만 수행할 수 있다고 생각합니다 awk.

내가 실행중인 운영 체제는 Ubuntu 12.04.2 LTS입니다.

답변1

GNU date매뉴얼 페이지에 따르면:

   By default, date  pads  numeric  fields  with  zeroes.   The  following
   optional flags may follow '%':

   -      (hyphen) do not pad the field

그러므로 당신은 할 수 있습니다

alias date="date '+%Y.%-m.%-d.%-H.%-M.%-S'"

그리고 받았다

2013.6.14.3.19.31

답변2

어리석은 것 같지만 이 질문에는 태그가 지정되어 있으므로 /sed언급한 대로 sed를 사용하여 이 작업을 수행하는 방법이 있습니다. :)

alias date='date +"%Y.%m.%d.%H.%M.%S" | sed "s/^0*//g; s/\.0*/./g"'

아래 댓글을 주목하세요. 삭제 *및 첫 번째 sed 표현식의 옵션 삭제 에 대한 g매우 유효한 요점이 있습니다 . 테스트 없이 위에 쓴 내용을 수정하고 싶지 않고 지금은 시간도 없습니다. 아래 Scott의 의견은 이 답변에 상식을 통합합니다.

답변3

XFCE는 0앞의 시간을 no로 설정합니다.

%l:%M %p

답변4

를 사용하면 printf어느 정도 유연성을 얻을 수 있습니다.

예를 들어:

/usr/bin/date "+%b %-2d %-H" | xargs printf "%s %2d %02d"

관련 정보