ANSIエスケープシーケンスとsedを使用してtailコマンドに色を提供する機能設定があります。
function colortail {
tail -f -n30 $1 | sed -e 's/\(.*MINOR.*\)/\o033[93m\1\o033[39m/' -e 's/.*MAJOR.*/\o033[38;5;202m&\o033[m/'
}
事前定義された文字列と一致しない他の行が異なる色を持つようにどのように設定しますか? 「基本色」みたいですか?ワイルドカードを使用する方法はありますか?明るくて大胆な白が欲しいなら、このようなものを追加すればいいですか?
-e 's/\(.*"".*\)033[1;37m\033[m"
答え1
私はシェルエスケープシーケンスに精通していませんが、あなたはそうです。したがって、あなたのユースケースに欠けているのは、if / else型ロジックを実装することです。次のいずれかの方法を使用できます。
sed -e '\
/.*MINOR.*/{ # If .*MINOR.* is matched \
# Code to set MINOR color \
} \
/.*MINOR.*/!{ # If .*MINOR.* is not matched \
/.*MAJOR.*/ { # If .*MAJOR.* is matched \
# Code to set MAJOR color \
} \
/.*MAJOR.*/!{ # If .*MAJOR.* is not matched \
# Code to set the default color \
} \
}'
引用する