GNU/Linux >> Linux の 問題 >  >> Linux

連続して書き込まれるログ ファイルの各行に日付文字列を追加する方法

Perl の場合:

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

gawk を使用:

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

command を置き換えます tail -f logfile で あなたの特定の例のために。または、元のプログラムの stdout/stderr を上記のパイプにリダイレクトすることもできます。


試す

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

これを試すことができます

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

出力例:

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. Linuxでテキストファイルに行番号を追加する方法

  2. 日付範囲に基づいてログファイルエントリをフィルタリングする方法

  3. ファイル内の文字列を置き換える方法は?

  1. Linuxでログファイルを空にする方法

  2. ファイルを分割し、各部分の最初の行を保持する方法は?

  3. Bash で、ファイルの各行の後に文字列を追加するにはどうすればよいですか?

  1. Bash:改行なしでファイルの末尾に文字列を追加します

  2. ファイルの各行の先頭に文字列を追加するにはどうすればよいですか?

  3. UNIXデータファイルの各行の最初のn文字を取得する方法