Inilah solusi awk saya (dari sistem Windows / XP dengan MKS Tools diinstal di direktori C: \ bin). Ini dirancang untuk menambahkan tanggal dan waktu saat ini dalam bentuk mm / hh: mm ke awal setiap baris setelah mengambil stempel waktu dari sistem saat setiap baris dibaca. Anda tentu saja dapat menggunakan pola BEGIN untuk mengambil stempel waktu satu kali dan menambahkan stempel waktu itu ke setiap record (semuanya sama). Saya melakukan ini untuk menandai file log yang sedang dibuat untuk stdout dengan stempel waktu pada saat pesan log dihasilkan.
/"pattern"/ "C\:\\\\bin\\\\date '+%m/%d %R'" | getline timestamp;
print timestamp, $0;
di mana "pola" adalah string atau regex (tanpa tanda kutip) untuk dicocokkan di baris input, dan opsional jika Anda ingin mencocokkan semua baris input.
Ini harus bekerja pada sistem Linux / UNIX juga, cukup singkirkan C \: \\ bin \\ meninggalkan garis
"date '+%m/%d %R'" | getline timestamp;
Ini, tentu saja, mengasumsikan bahwa perintah "date" membawa Anda ke perintah tampilan / set tanggal Linux / UNIX standar tanpa informasi jalur spesifik (yaitu, variabel PATH lingkungan Anda dikonfigurasikan dengan benar).
cat somefile.txt
agak "menyesatkan"? Saya berharap itu terjadi "sekaligus" dan memiliki cap waktu tunggal. Bukankah ini menjadi program tes yang lebih baik:(echo a; sleep 1; echo b; sleep 3; echo c; sleep 2)
?