ฉันพยายามใช้คำสั่ง awk เพื่อแยกเนื้อหาจากไฟล์บันทึกสำหรับ 5 นาทีที่ผ่านมา ด้านล่างเป็นคำสั่งที่ฉันใช้
`awk -v d1="$(date --date="-5 min" "+%m/%d/%y %k:%M:%S:%3N")" -v d2="$(date "+%m/%d/%y %k:%M:%S:%3N")" '$0 > d1 && $0 < d2 || $0 ~ d2' /tmp/test.log
พบว่าเงื่อนไข'$0 > d1 && $0 < d2 || $0 ~ d2'
ใช้ได้กับรูปแบบวันที่ที่ระบุเท่านั้น รูปแบบวันที่ในบันทึกของฉันอยู่ด้านล่าง: [2/9/17 13: 30: 35: 552 EST] คำสั่งที่ฉันเรียกใช้ข้างต้นไม่ทำงาน ..
แต่เมื่อฉันทดสอบรูปแบบวันที่อื่น ๆ เช่นด้านล่าง: 9 ก.พ. 14:01
สภาพการทำงาน
awk -v d1="$(date --date="-30 min" "+%b %_d %H:%M")" -v d2="$(date "+%b %_d %H:%M")" '$0 > d1 && $0 < d2 || $0 ~ d2' /tmp/test2.log
ความคิดใดที่ว่าทำไมเงื่อนไขไม่ทำงานในรูปแบบวันที่ [2/9/17 13: 30: 35: 552 EST] นี้