Öncelikle, bu zaman damgalarının gerçekte bir olayı temsil etmesini bekliyorsanız, birçok programın satır tamponlama işlemi gerçekleştirdiğinden (bazıları diğerlerinden daha agresif bir şekilde) gerçekleştiğinden, bunun orijinal satırın olacağı zamana yakın olduğunu düşünmenin önemli olduğunu unutmayın. gerçekleşen bir eylemin zaman damgası yerine basılmıştır.
Ayrıca, komutunuzun zaten bunu yapmaya adanmış yerleşik bir özelliğe sahip olmadığını kontrol etmek isteyebilirsiniz. Örnek olarak, ping -D
bazı ping
sürümlerde var ve Unix döneminden beri her satırdan önceki zamanı yazdırıyor. Ancak emriniz kendi yöntemini içermiyorsa, diğerlerinin yanı sıra kullanılabilecek birkaç yöntem ve araç vardır:
POSIX kabuğu
Birçok mermi dizelerini dahili olarak cstrings olarak sakladığından, giriş boş karakter ( \0
) içeriyorsa , satırın zamanından önce bitmesine neden olabileceğini unutmayın.
command | while IFS= read -r line; do printf '[%s] %s\n' "$(date '+%Y-%m-%d %H:%M:%S')" "$line"; done
GNU awk
command | gawk '{ print strftime("[%Y-%m-%d %H:%M:%S]"), $0 }'
Perl
command | perl -pe 'use POSIX strftime; print strftime "[%Y-%m-%d %H:%M:%S] ", localtime'
piton
command | python -c 'import sys,time;sys.stdout.write("".join(( " ".join((time.strftime("[%Y-%m-%d %H:%M:%S]", time.localtime()), line)) for line in sys.stdin )))'
Yakut
command | ruby -pe 'print Time.now.strftime("[%Y-%m-%d %H:%M:%S] ")'