GNU/Linux >> Tutoriels Linux >  >> Linux

Comment ajouter une chaîne de date à chaque ligne d'un fichier journal écrit en continu

Avec perl :

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

Avec étonnement :

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

Remplacer command avec tail -f logfile pour votre exemple spécifique. Ou peut-être pourriez-vous simplement rediriger la sortie stdout/stderr du programme d'origine vers le canal ci-dessus.


Essayez

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

Vous pouvez essayer ceci

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

Exemple de sortie :

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. Comment ajouter des numéros de ligne aux fichiers texte sous Linux

  2. Comment analyser chaque ligne d'un fichier texte comme argument d'une commande ?

  3. Comment vider un fichier journal sous Linux

  4. Comment scinder un fichier et conserver la première ligne dans chacun des morceaux ?

  5. Dans Bash, comment ajouter une chaîne après chaque ligne dans un fichier ?

Comment lire un fichier ligne par ligne dans Bash

Comment filtrer les entrées du fichier journal en fonction de la plage de dates

Comment remplacer une chaîne dans un ou plusieurs fichiers ?

Comment ajouter un fichier d'échange sur Ubuntu 20.04

Bash :ajouter une chaîne à la fin du fichier sans saut de ligne

Comment puis-je ajouter une chaîne au début de chaque ligne dans un fichier ?