Portál AbcLinuxu, 10. května 2025 08:51

Dotaz: Filtr dávající datum a čas na začátky řádků

2.5.2007 10:45 Lukáš Zapletal | skóre: 42 | blog: lzapův svět | Olomouc
Filtr dávající datum a čas na začátky řádků
Přečteno: 142×
Odpovědět | Admin
Zdravím,

hodil by se mi jednoduchý unixový filtr, který by před každý řádek přidal informaci o datumu a čase. Když totiž přesměruji výstup nějakého opakovaně volaného programu do jednoho souboru, chtěl bych tam mít i informaci o čase.

Je snadné si takový filtr napsat, ale asi již bude někde existovat...
Later --- Lukáš Zapletal
Nástroje: Začni sledovat (3) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

2.5.2007 11:07 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Filtr dávající datum a čas na začátky řádků
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tady jsem už něco takového psal
http://www.abclinuxu.cz/forum/show/169276#6
ale dost velkým nepřítelem je bufferování.
2.5.2007 12:48 outsider
Rozbalit Rozbalit vše Re: Filtr dávající datum a čas na začátky řádků
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vim, ze existuje tai64n a tai64nlocal, ale pokud byste mel nejaky DJB soft nainstalovany, tak byste to asi vedel taky (a jenom kvuli tomuhle ty hruzy instalovat je pekna blbost) :-)
2.5.2007 13:14 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Filtr dávající datum a čas na začátky řádků
Odpovědět | | Sbalit | Link | Blokovat | Admin
cat vstup | while read line; do date "+%F %T $line"; done
2.5.2007 14:23 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Filtr dávající datum a čas na začátky řádků
Tady je verze, která správně zpracuje i zpětná lomítka a procenta (a je asi stokrát rychlejší):
#!/usr/bin/env python
import sys, time
while True:
    line = sys.stdin.readline()
    if not line: break
    now = time.localtime()
    stamp = time.strftime("%F %T ", now)
    sys.stdout.write(stamp+line)
2.5.2007 16:56 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Filtr dávající datum a čas na začátky řádků
A tady je verze čtyřikrát kratší a stejně tak rychlá:
perl -mPOSIX=strftime -pe '$_ = strftime("%F %T ", localtime).$_'
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
David Watzke avatar 2.5.2007 20:09 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Filtr dávající datum a čas na začátky řádků
Tady máš ještě kratší a rychlejší...
sed "s/^/$(date "+%F %T") /"
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
David Watzke avatar 2.5.2007 20:13 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Filtr dávající datum a čas na začátky řádků
Hm... teď si tak uvědomuju, že tohle date spustí jednou a pak už používá pořád to stejný... tak nic :-D
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
3.5.2007 08:08 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Filtr dávající datum a čas na začátky řádků
No proto :-D
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
3.5.2007 08:52 podlesh
Rozbalit Rozbalit vše Re: Filtr dávající datum a čas na začátky řádků
Ale o to je to rychlejší :-)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.