이것을 포함하는 파일이 있습니다 :
1415602803,LOGIN SUCCESS,AUTH,user2,192.168.203.63,10.146.124.73,59996,22
1415602807,LOGIN SUCCESS,AUTH,user1,172.24.31.10,172.32.1.1,48191,22
1415602811,LOGIN FAILED,AUTH,root,172.24.166.153,10.146.124.73,52506,22
1415602815,LOGIN FAILED,AUTH,user3,192.168.123.55,10.146.32.99,55750,22
타임 스탬프를이 형식의 날짜로 변환하고 싶습니다.
2014-11-10 02:00:03,LOGIN SUCCESS,AUTH,user2,192.168.203.63,10.146.124.73,59996,22
2014-11-10 02:00:07,LOGIN SUCCESS,AUTH,user1,172.24.31.10,172.32.1.1,48191,22
2014-11-10 02:00:11,LOGIN FAILED,AUTH,root,172.24.166.153,10.146.124.73,52506,22
2014-11-10 02:00:15,LOGIN FAILED,AUTH,user3,192.168.123.55,10.146.32.99,55750,22
어떻게해야합니까?
나는 이것이 효과가 있음을 알고있다 : perl -pe 's/(\d+)/localtime($1)/e'
( 이 질문에서 ) 출력 형식은 Mon Nov 10 02:00:03 2014
입니다.
이 명령으로 타임 스탬프를 원하는 출력으로 변환 할 수 있다는 것을 알고 date -d@1415602803 +"%F %H:%M:%S"
있지만 모든 인용문과 그 밖의 이유로 인해 awk
사용할 수 없습니다 system("cmd")
.
awk 'BEGIN{ print strftime("%Y-%m-%d %H:%M:%S", 0) }'
awk: line 2: function strftime never defined
여기에 제공 합니다. 모든 AWK가 아님을 명확히하십시오strftime()
! 대부분의 AWK에서 실행되는 솔루션의 경우 외부date
명령을 사용하여 이식성을 유지하십시오.