codememo

구두점 없이 현재 날짜 및 시간 표시

tipmemo 2023. 4. 23. 10:29
반응형

구두점 없이 현재 날짜 및 시간 표시

예를 들어 현재 날짜와 시간을 다음과 같은 형식으로 표시합니다.

yyyymmddhhmmss 

그걸 어떻게 하는 거죠?대부분의 날짜 형식에는 다음이 포함되어 있는 것 같습니다.-,/,:,기타.

여기 있습니다.

date +%Y%m%d%H%M%S

~하듯이man date위쪽에 이렇게 써있는데요,date명령어는 다음과 같습니다.

date [OPTION]... [+FORMAT]

즉, 포맷 파라미터를 지정할 수 있습니다.+제가 사용한 포맷 기호의 의미를 짐작할 수 있을 것입니다.

  • %Y연도의
  • %m한 달 동안
  • %d하루의 일수다
  • ...등등

이 기호 및 기타 형식 지정 기호는 에서 찾을 수 있습니다.man date.

셸 스크립트의 간단한 예

#!/bin/bash

current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;

구두점 형식 제외:- +%Y%m%d%H%M%S
구두점 포함:- +%Y-%m-%d %H:%M:%S

구두점 없음(@Burusothman이 언급한 바와 같이):

current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;

O/P:

20170115072120

구두점 포함:

current_date_time="`date "+%Y-%m-%d %H:%M:%S"`";
echo $current_date_time;

O/P:

2017-01-15 07:25:33

Bash 를 사용하고 있는 경우는, 다음의 몇개의 커맨드를 사용할 수도 있습니다.

printf '%(%Y%m%d%H%M%S)T'       # prints the current time
printf '%(%Y%m%d%H%M%S)T' -1    # same as above
printf '%(%Y%m%d%H%M%S)T' -2    # prints the time the shell was invoked

옵션을 사용할 수 있습니다.-v varname결과를 저장하다$varnamestdout에 인쇄하는 대신:

printf -v varname '%(%Y%m%d%H%M%S)T'

date 명령어는 항상 하위 셸(즉, 별도의 프로세스)에서 실행되지만 printf는 내장 명령어이므로 속도가 더 빠릅니다.

파라미터 확장을 사용하여 이 작업을 수행하는 흥미로운/재미있는 방법(필요bash 4.4이후) :

${parameter@operator} - P operator

확장은 파라미터 값을 프롬프트 문자열처럼 확장한 결과 문자열입니다.

$ show_time() { local format='\D{%Y%m%d%H%M%S}'; echo "${format@P}"; }
$ show_time
20180724003251

언급URL : https://stackoverflow.com/questions/20551566/display-current-date-and-time-without-punctuation

반응형