Mam plik zawierający to:
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
Chcę przekonwertować znacznik czasu na datę w tym formacie:
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
Jak mogę to zrobić?
Wiem, że to działa: perl -pe 's/(\d+)/localtime($1)/e'
(z tego pytania ), ale format wyjściowy to Mon Nov 10 02:00:03 2014
.
Wiem, że to polecenie może konwertować znaczniki czasu na pożądane dane wyjściowe:, date -d@1415602803 +"%F %H:%M:%S"
ale nie mogłem sprawić, by działało z awk
użyciem z system("cmd")
powodu wszystkich cytatów i tak dalej.
text-processing
awk
perl
Alaa Ali
źródło
źródło
awk 'BEGIN{ print strftime("%Y-%m-%d %H:%M:%S", 0) }'
dajeawk: line 2: function strftime never defined
tutaj. Wyjaśnij, że NIE KAŻDY AWK mastrftime()
! Aby uzyskać rozwiązanie działające w większości (wszystkich?) Zestawach AWK, użyj zewnętrznegodate
polecenia, aby pozostać przenośnym.date
implementacji, które mogą konwertować daty między formatami jako rozszerzenie, ale sposób ich wykonania różni się całkowicie między implementacjami. Na przykład rozwiązanie podane przez Costasa wykorzystuje składnię specyficzną dla GNUdate
. Jeśli chcesz mieć przenośność, użyjperl
.Jeśli chcesz
awk
, możesz użyć zewnętrznego poleceniadate
w dowolnym formacie datyźródło
strftime()
!Możesz także spróbować:
źródło
Zadałem pytanie 9 miesięcy temu, które oznaczono jako duplikat tego. Dopiero teraz zobaczyłem prośbę o opublikowanie odpowiedzi, która działała dla mnie na to pytanie. Oto link do tego pytania i odpowiedzi.
/unix//a/304009/172916
źródło