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
行番号が着色されます。