GNU/Linux >> Znalost Linux >  >> Linux

Jak přidat řetězec data na každý řádek nepřetržitě zapisovaného souboru protokolu

S perlem:

command 2>&1 | perl -pe 'print scalar(localtime()), " ";'

S gawkem:

command 2>&1 | awk '{ print strftime(), $0; fflush() }'

Nahraďte command s tail -f logfile pro váš konkrétní příklad. Nebo byste možná mohli jen přesměrovat stdout/stderr původního programu do výše uvedeného kanálu.


Zkuste

tail -f logfile | while read line; do echo `date` "$line" ; done

Můžete to zkusit

cat /etc/motd | xargs -d"\n" -I {} date +"%Y-%m-%d %H:%M:%S {}"

Příklad výstupu:

2013-02-26 15:13:57 
2013-02-26 15:13:57 The programs included with the Debian GNU/Linux system are free software;
2013-02-26 15:13:57 the exact distribution terms for each program are described in the
2013-02-26 15:13:57 individual files in /usr/share/doc/*/copyright.
2013-02-26 15:13:57 
2013-02-26 15:13:57 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
2013-02-26 15:13:57 permitted by applicable law.

Linux
  1. Jak filtrovat záznamy v souboru protokolu na základě časového období

  2. Jak vyprázdnit soubor protokolu v Linuxu

  3. Jak v Bash přidám řetězec za každý řádek v souboru?

  1. Bash:přidejte řetězec na konec souboru bez zalomení řádku

  2. jak omezit délku řetězce přítomného v řádku pomocí linuxu

  3. nahradit n-tý výskyt řetězce v každém řádku textového souboru

  1. Jak přidat čísla řádků do textových souborů v systému Linux

  2. Jak nahradit řetězec v souboru (souborech)?

  3. Jak přidat časové razítko do protokolu skriptu bash?