テール-f |テキストの色を編集

テール-f |テキストの色を編集

tail -f 以降にテキストを修正しています。
ファイルを監視するための次のプログラムがあります。

tail -vf -c5 /tmp/index                         \
    | cat -n                                    \
    | sed s/^[^0-9]*\\\([0-9]\\\)/__\\\1__/g -  \
    ;

sedがtailの出力を正常に変更しました。
これで、他の端末で次のことができます。

RED='\033[0;31m';
NC='\033[0m';
printf "I ${RED}love${NC} Stack Overflow\n" 1>>/tmp/index;

テールモニターに更新が色で表示されます。

しかし、私が望むのは、出力に独自の色を追加できるsedプログラムです。さまざまな設定を試しましたが、何も機能しません。主にここにそこにバックスラッシュを追加することが含まれます。

出力に色を追加するtail-sedプログラムをどのように持つことができますか?

答え1

数年前、私は正規表現の入力に基づいて色を追加する小さなスクリプトを書いていました。以前に投稿したことがあります。ここcolorディレクトリに指定されたファイルにスクリプトを貼り付けて$PATH実行可能にしたら、次のことができます。

tail -vf -c5 /tmp/index | 
  cat -n  |
  color -l '^\s*\d+'

またはより受動的に:

tail -vf -c5 /tmp/index | 
  cat -n  |   
  perl -pe 's#^.*?\d+#\x1b[31m$&\x1b[0m#;'

またはsed:

tail -vf -c5 /tmp/index | 
  cat -n  |   
  sed -E 's#^[^0-9]*[0-9]*#\x1b[31m&\x1b[0m#;'

または、Perlですべての操作を実行できます。

tail -vf -c5 /tmp/index |    
  perl -pe 's#^#\x1b[31m $. \x1b[0m#;'

答え2

tail whatever | cat -n | grep -E '^[ 0-9]+' --color

行番号が着色されます。

関連情報