Saya punya file yang mengandung ini:
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
Saya ingin mengonversi cap waktu menjadi tanggal dalam format ini:
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
Bagaimana saya bisa melakukan itu?
Saya tahu ini berfungsi: perl -pe 's/(\d+)/localtime($1)/e'
(dari pertanyaan ini ) tetapi format outputnya adalah Mon Nov 10 02:00:03 2014
.
Saya tahu perintah ini dapat mengubah cap waktu menjadi keluaran yang saya inginkan:, date -d@1415602803 +"%F %H:%M:%S"
tetapi saya tidak dapat membuatnya bekerja dengan awk
menggunakan system("cmd")
karena semua kutipan dan yang lainnya.
text-processing
awk
perl
Alaa Ali
sumber
sumber
awk 'BEGIN{ print strftime("%Y-%m-%d %H:%M:%S", 0) }'
berikanawk: line 2: function strftime never defined
disini. Tolong jelaskan bahwa TIDAK SETIAP AWKstrftime()
! Untuk solusi yang berjalan di sebagian besar (semua?) AWK, silakan gunakandate
perintah eksternal untuk tetap portabel.date
implementasi yang dapat mengonversi tanggal antara format sebagai ekstensi, tetapi cara melakukannya sangat bervariasi di antara implementasi. Sebagai contoh, solusi yang diberikan oleh Costas menggunakan sintaks khusus untuk GNUdate
. Jika Anda ingin portabilitas, gunakanperl
.Jika suka,
awk
Anda dapat menggunakan perintah eksternaldate
dengan format tanggal apa punsumber
strftime()
!Anda juga dapat mencoba:
sumber
Saya mengajukan pertanyaan 9 bulan lalu yang ditandai sebagai duplikat dari pertanyaan ini. Saya baru saja melihat permintaan untuk mengirim jawaban yang berhasil untuk saya pada pertanyaan ini. Inilah tautan ke pertanyaan dan jawaban itu.
/unix//a/304009/172916
sumber