İşte benim awk çözüm (C: \ bin dizininde MKS Tools kurulu bir Windows / XP sisteminden). Her tarih okundukça sistemden zaman damgasını alan her satırın başına mm / gg ss: mm biçiminde geçerli tarih ve saati eklemek için tasarlanmıştır. Elbette, zaman damgasını bir kez almak ve bu zaman damgasını her kayda (hepsi aynı) eklemek için BEGIN desenini kullanabilirsiniz. Bunu, günlük iletisinin oluşturulduğu zamandaki zaman damgası ile stdout için oluşturulmuş bir günlük dosyasını etiketlemek için yaptım.
/"pattern"/ "C\:\\\\bin\\\\date '+%m/%d %R'" | getline timestamp;
print timestamp, $0;
burada "desen", giriş satırında eşleştirilecek bir dize veya normal ifade (tırnak işaretleri olmadan) ve tüm giriş satırlarıyla eşleşmek istiyorsanız isteğe bağlıdır.
Bu Linux / UNIX sistemlerinde de çalışmalı, sadece çizgiden ayrılan C \: \\ bin \\ 'dan kurtulun
"date '+%m/%d %R'" | getline timestamp;
Bu, elbette, "tarih" komutunun sizi belirli yol bilgileri olmadan standart Linux / UNIX tarih görüntüleme / ayarlama komutuna götürdüğünü varsayar (yani, ortam PATH değişkeniniz doğru yapılandırılmıştır).
cat somefile.txt
"yanıltıcı" biraz? Bunun "bir kerede" olmasını ve tek bir zaman damgasına sahip olmasını beklerdim. Bu daha iyi bir test programı olmaz(echo a; sleep 1; echo b; sleep 3; echo c; sleep 2)
mı?