dd/mm/yyyy hh:mm:ss 형식의 날짜가 포함된 텍스트 파일의 열을 yy-mm-dd hh:mm:ss로 동적으로 변환하려고 합니다. 다음 명령은 작동하지만 필요에 따라 yy-mm-dd 형식 대신 yy-dd-mm 형식으로 출력을 제공합니다.
echo $(date -d "8/11/2018 06:20:57 AM" "+%y-%m-%d %H:%M:%S")
산출:
18-08-11 06:20:57
또한 다음과 같이 첫 번째 숫자를 일이 아닌 월로 처리하므로 12보다 큰 날짜에는 작동하지 않습니다.
echo $(date -d "28/11/2018 06:20:57 AM" "+%y-%m-%d %H:%M:%S")
산출:
date: invalid date ‘28/11/2018 06:20:57 AM’
작동하게 하는 방법이 있나요?
답변1
먼저 전처리하는 것이 좋습니다. 내 최고의 기회는sed
echo "28/11/2018 06:20:57 PM" | sed -E "s/([0-9]+)\/([0-9]+)\/([0-9]+) ([0-9]+):([0-9]+):([0-9]+) ([APM]{2})/\3\/\2\/\1 \4:\5:\6 \7/g" | xargs -I II date -d II "+%y-%m-%d %H:%M:%S"