นี่คือโซลูชัน awk ของฉัน (จากระบบ Windows / XP ที่ติดตั้งเครื่องมือ MKS ในไดเรกทอรี C: \ bin) มันถูกออกแบบมาเพื่อเพิ่มวันที่และเวลาปัจจุบันในรูปแบบ mm / dd hh: mm ไปยังจุดเริ่มต้นของแต่ละบรรทัดที่ดึงข้อมูลเวลานั้นจากระบบเมื่ออ่านแต่ละบรรทัด แน่นอนคุณสามารถใช้รูปแบบ BEGIN เพื่อดึงข้อมูลการประทับเวลาหนึ่งครั้งและเพิ่มการประทับเวลานั้นในแต่ละระเบียน (เหมือนกันทั้งหมด) ฉันทำสิ่งนี้เพื่อแท็กไฟล์บันทึกที่ถูกสร้างขึ้นเพื่อ stdout ด้วยการประทับเวลา ณ เวลาที่มีการสร้างข้อความบันทึก
/"pattern"/ "C\:\\\\bin\\\\date '+%m/%d %R'" | getline timestamp;
print timestamp, $0;
โดยที่ "pattern" เป็นสตริงหรือ regex (โดยไม่ใส่เครื่องหมายอัญประกาศ) เพื่อจับคู่ในบรรทัดอินพุตและเป็นทางเลือกถ้าคุณต้องการจับคู่บรรทัดอินพุตทั้งหมด
สิ่งนี้ควรทำงานบนระบบ Linux / UNIX ด้วยเพียงกำจัด C \: \\ bin \\ ออกจากบรรทัด
"date '+%m/%d %R'" | getline timestamp;
แน่นอนว่าสมมติว่าคำสั่ง "date" นำคุณไปสู่คำสั่ง display / set วันที่ Linux / UNIX มาตรฐานโดยไม่มีข้อมูลพา ธ เฉพาะ (นั่นคือตัวแปร PATH สภาพแวดล้อมของคุณได้รับการกำหนดค่าอย่างถูกต้อง)
cat somefile.txt
บิต "ความเข้าใจผิด"? ฉันคาดว่าจะเกิดขึ้น "ในครั้งเดียว" และมีการประทับเวลาเดียว นี่จะเป็นโปรแกรมทดสอบที่ดีกว่า(echo a; sleep 1; echo b; sleep 3; echo c; sleep 2)
หรือไม่: