awk를 사용하여 날짜 필드 형식 지정

awk를 사용하여 날짜 필드 형식 지정

날짜 형식을 "09-12:36:10"에서 "09-월-년 12:36:10"으로 변환하는 방법("월"을 현재 연도로 바꾸고 현재 월 이름(3글자 약어) 및 "연도"( 4자리), awk를 사용하나요? 예를 들어 "09-12:36:10"을 "09-JUL-2018 12:36:10"으로 변경합니다.

답변1

간단히,

echo 09-12:36:10 | awk -F '-' -v date="$(date +"-%b-%Y " )" '{ print $1date$2}'

해당 월을 대문자로 표시하려면 다음을 수행하세요.

echo 09-12:36:10 | awk -F '-' -v date="$(date +"-%b-%Y " )" '{ print toupper($1date$2)}'

답변2

이것이 얼마나 강력해야 하는지는 확실하지 않지만 이것이 시작입니다.

#!/usr/bin/awk -f
BEGIN {
    FS = "-"
}
{
    print $1 "-MONTH-YEAR", $2
}

답변3

GNU Awk( )가 있으면 gawk내장 systimestrftime

gawk -F'[-]' '{print $1, strftime("%b %Y", systime()), $2}'   

전임자.

$ echo '09-12:36:10' | gawk -F'[-]' '{print $1, strftime("%b %Y", systime()), $2}'
09 Jul 2018 12:36:10

대문자로 된 약식 월이 필요한 경우 %^b다음과 같이 시도하십시오.

$ echo '09-12:36:10' | awk -F'[-]' '{print $1 strftime("-%^b-%Y", systime()), $2}'
09-JUL-2018 12:36:10

관련 정보