tail -fに色付きの出力を表示させる方法


265

次のようなメッセージを含むサーバーログファイルの出力をテーリングできるようにしたいと思います。

INFO
SEVERE

など、それがのSEVERE場合は、行を赤で表示します の場合INFO、緑色で。これをtail行うのに役立つコマンドにはどのようなエイリアスを設定できますか?


回答:


234

マルチテールを試してください。これはのübergeneralizationですtail -f。複数のファイルを別々のウィンドウで視聴したり、コンテンツに基づいて行を強調表示したりできます。

multitail -c /path/to/log

色は設定可能です。デフォルトの配色がうまくいかない場合は、設定ファイルに独自の配色を記述します。たとえばmultitail -cS amir_log /path/to/log、次のように呼び出します~/.multitailrc

colorscheme:amir_log
cs_re:green:INFO
cs_re:red:SEVERE

別のソリューションは、非標準ツールをインストールするのが不便なサーバー上にある場合tail -f、sedまたはawkと組み合わせて色選択制御シーケンスを追加することです。これにはtail -f、標準出力がパイプであっても、標準出力を遅滞なくフラッシュする必要があります。すべての実装がこれを行うかどうかはわかりません。

tail -f /path/to/log | awk '
  /INFO/ {print "\033[32m" $0 "\033[39m"}
  /SEVERE/ {print "\033[31m" $0 "\033[39m"}
'

またはsedで

tail -f /path/to/log | sed --unbuffered \
    -e 's/\(.*INFO.*\)/\o033[32m\1\o033[39m/' \
    -e 's/\(.*SEVERE.*\)/\o033[31m\1\o033[39m/'

sedがGNU sedでない場合は\o033、リテラルエスケープ文字に置き換えて削除し--unbufferedます。

さらに別の可能性はtail -fEmacsシェルバッファーで実行し、Emacsの構文カラーリング機能を使用することです。


どのようにしてこれを行うことができますsedか?(怠け者で、自分で考え出せないのでごめんなさい!)しかし、あなたsedも例を追加してください。
アリ

5
@Ali Sedはエスケープ文字の構文を持たないため、あまり便利ではありません。スクリプトでそのまま使用するか、シェルの引用方法を使用して作業する必要があります。awkを使用することをお勧めします。
ジル

8
@Gilles tail -fwith awkコードでは、文字列にINFOSEVEREがない場合、文字列は出力されません。残りの文字列を印刷するにどうすればよいですか?(文字列を着色する必要はありません)
ベンジャミン

6
@Benjamin ; next閉じ括弧の前に追加して、さらに処理をスキップ1 {print}し、最後に新しい処理行を追加します(1常に意味します)。
ジル

3
sed --unbuffered -e 's/\(.*FATAL.*\)/\o033[1;31m\1\o033[0;39m/' -e 's/\(.*ERROR.*\)/\o033[31m\1\o033[39m/' -e 's/\(.*WARN.*\)/\o033[33m\1\o033[39m/' -e 's/\(.*INFO.*\)/\o033[32m\1\o033[39m/' -e 's/\(.*DEBUG.*\)/\o033[34m\1\o033[39m/' -e 's/\(.*TRACE.*\)/\o033[30m\1\o033[39m/' -e 's/\(.*[Ee]xception.*\)/\o033[1;39m\1\o033[0;39m/'
-DmitrySandalov

120

grc、一般的な色付けはかなりクールです。

apt-get install grc

ただやる

grc tail -f /var/log/apache2/error.log

お楽しみください!

GitHubにもあります。


2
これはまさに私が必要としていたもので、軽量でシンプルです。色分けはログの種類(カスタムログ)に正確ではありませんが、色付けを行うとログを追跡しやすくなります。
rennat

私にとって、Debianの「grc」は次のエラーでエラーになります:OSError:[Errno 13]許可が拒否されました。また、インストールされているPythonに依存するため、既にお持ちでない限り比較的軽量ではありません。私は、「ccze」がはるかにうまく機能することを発見しました。'tail -f -n 50 /var/log/starbound-server.log | ccze -A '。
ダニエルソコロースキ

1
Ubuntuのgrcのデフォルト設定は、syslogsまたはmail.logに対して適切に表示されませんでした。カスタマイズ方法を理解するのは簡単ではありません。
レペ

1
マルチテールよりも素早く簡単に色付けする方法を見つけました。CentOSシステムでソース経由でクイックインストールを実行し、私の人生をアップグレードしました。私の他のシステムにもインストールされます。
zeeshan

4
これはnginxのログではかなりひどいようですi.imgur.com/aJbIOfL.png-mpen 14
34分

51

あなたは見たことがありcczeを?オプションを使用して、-cまたは構成ファイルで直接、一部のキーワードのデフォルトの色をカスタマイズする可能性があります。色付け後に画面がクリアされる場合は、オプションを使用する必要があります-A

編集:

行全体を赤で着色したい場合は、次のことも試してみてください。

$ tail -f myfile.log | perl -pe 's/.*SEVERE.*/\e[1;31m$&\e[0m/g'

\e[1;31mあなたに赤い色を与えます。黄色が必要な場合は、を使用し\e[1;33m、緑色で使用します\e[1;32m\e[0m通常のテキストの色を復元します。


1
これはMacでは動作しません-Linuxで動作するため、私はそれを支持しています。
アミールアフガニ

perl / ansiのトリックはそうではないかもしれないが、cczeはそうだから。
シャドゥール

1
次の\007ように、正規表現の最後に追加することで、端末にアラートまたは「ビープ音」を送信させることもできますperl -pe 's/(ERROR)/\033[31m$1\033[0m\007/g;'。tmuxでtmuxを使用set -g bell-action anyしている場合、これは非常に機能します。この場合、別のウィンドウでログテーリングがある場合、正規表現が一致を見つけるたびにそのウィンドウ名がアラートを出します。
ジョニャモ

@AmirAfghaniこれはlinux / unix SEサイトです。したがって、なぜMacで動作すると思ったのかわかりません。
BЈовић

1
@BЈовићMacはUnixです。
クリスダウン


24

rainbowを使用して、正規表現に基づいて線を色付けできます。

rainbow --red='SEVERE.*' --green='INFO.*' tail -f my-file.log

また、Tomcatログ用など、定義済みの構成がバンドルされています。

rainbow --config=tomcat tail -f my-file.log

(免責事項:私は著者です)


2
この質問に提供された他のほとんどのソリューションを試しましたが、sun、aix、linux、termux、darwin、およびcygwinで私が日常的に使用している6(!)環境で同様にうまく機能したのはレインボーだけでした。他のすべては、少なくともいくつかのプラットフォームでの移植不可能なビルドプロセスに関係していました。
ステーブルドッグ

1
rainbowすごい。あなたは著者ですか?その場合は、その帰属を使用して回答を編集してください。
ビショップ

はい、ごめんなさい、編集
nicoulaj

15

colortailを使用できます:

colortail -f /var/log/messages

2
+1はUbuntuリポジトリで入手できます。私がcczeと比較してcolortailが好きなのは、RegExを使用してパターンを自由にカスタマイズできることです。利用可能な色:黒、brightblack、white、brightwhite、マゼンタ、brightmagenta、cyan、brightcyan、green、brightgreen、yellow、brightyellow、red、brightred、blue、brightblue 残念ながら、ボールドやオレンジのような他の色を設定する方法はありません。
lepe 14年

+色は「太字」には、「明るい」(一部の色は実際にも明るくなります):私は私の以前のコメントについての一点を補正したい
レペ

これをUbuntu 18で試しましたが、うまくいきませんでした。セットアップは多段階であり、指示はあいまいです。それが私が間違った部分であるかどうかはまだわかりません。最後の部分は明確に得ることができます「あなたには、いくつかの他の場所に例の設定ファイルをコピーして編集することがその後、私は〜/ .colortail /でそれらを持っている」
Dawoodjee

apt install colortailcolortailをインストールするだけで、〜/ .colortail /を編集しなくても動作するはずです。
Kartik M

11

また、一致する正規表現を1つだけ探したい場合は、GNU grep with --colorが動作することに注意してくださいtail。出力をパイプするだけです。


OPは、出力を強調表示するだけで、フィルタリングはしたくありませんでした。Grepは一致しない行を表示しません...
コーデラー14年

3
と言う場合grep  -A9999  -B9999 regex、10,000行の一致しない行がない限り、すべての行が表示されます。GREP_COLORS="ms=31:sl=33:cx=32" grep -A9999 -B9999 SEVERE単語SEVEREを赤で表示し、残りのSEVERE行を黄色で表示し、他のすべての(SEVERE以外の)行(最大9999)を緑で表示するようなものを使用します。
Gマン

パイプの順序によっては、--color=always単に--colorではなくgrepに渡す必要があるかもしれませんが、はい、これは私のボックスにインストールされたtail(GNU coreutils)8.27です。
ハンクシュルツ

7

などの標準コマンドから色付きの出力を取得grepするには、これalias.bashrc

# User specific aliases and functions
alias grep='grep --color=auto'

ファイルで何かをgrepすると、次のようなものが表示されます(ただし、おそらく赤で表示されます)

[root @ linuxbox mydir]#grep "\(INFO \ | SEVERE \)" / var / log / logname
このエントリはINFO  
SEVEREですこのエントリは警告です!
このエントリはINFOです。 
このエントリはINFO 
SEVEREです。このエントリは警告です。

tailまたはを使用awkし、色がパイプまで生き残るようにしたい場合、エイリアスは十分ではないので、--color=alwaysパラメータを使用する必要があります。次に例を示します。

[root @ linubox mydir]#grep --color = always "\(INFO \ | SEVERE \)" / var / log / logname | テール-f | awk '{print $ 1}'
この 
重度
この
この
重度

awkストーリーに色付きのテキストが必要な場合、少し複雑ですが、より強力です。たとえば、

[root @ linubox mydir]#tail -f / var / log / messages | awk '{if($ 5〜/ INFO /)print "\ 033 [1; 32m" $ 0 "\ 033 [0m"; else if($ 1〜/ SEVERE /)print "\ 033 [1; 31m" $ 0 "\ 033 [0m"; それ以外の場合は$ 0}を印刷します '
このエントリはINFO  
SEVEREですこのエントリは警告です!
これは別のエントリーです
このエントリはINFOです
これは別のエントリーです
このエントリはINFO 
SEVEREですこのエントリは警告です!

各行に独自の色を付けます。

他のツールを使用してシェルから色付きのテキストを取得する方法は他にもたくさんあり、他のメンバーがよく説明しています。



6

@uloBasEIの回答に基づいて、私はを使用しようとしました... | perl ... | perl ...が、Linuxパイプは少しおかしくなり、遅すぎます。すべてのルールを1つのperlコマンドだけに入れると、うまく機能します。

たとえば、次のようにperlファイルcolorTail.plを作成します。

#!/usr/bin/perl -w

while(<STDIN>) {
    my $line = $_;
    chomp($line);
    for($line){
        s/==>.*<==/\e[1;44m$&\e[0m/gi; #tail multiples files name in blue background
        s/.*exception.*|at .*/\e[0;31m$&\e[0m/gi;  #java errors & stacktraces in red
        s/info.*/\e[1;32m$&\e[0m/gi; #info replacement in green
        s/warning.*/\e[1;33m$&\e[0m/gi; #warning replacement in yellow
    }
    print $line, "\n";
}

次のように使用します。

tail -f *.log | perl colorTail.pl
tail -f *.log -f **/*.log | perl colorTail.pl

注:MobaXTermでも使用できます!MobaXTermサイトperlからプラグインをダウンロードするだけです。


3
tail -f /var/log/logname | source-highlight -f esc -s log

7
source-highlight広くインストールされているコマンドではないため、少なくともプロジェクトサイトへのリンクを提供する必要があります。
ジル

Fedora 19で利用可能
sjas

そして、Ubuntu 12.10。
sjas

良い感じ。このリストにある他のパッケージと比較して大きなパッケージ(26MB)。言語の膨大なリストをサポートしています。/usr/share/source-highlight/*.lang(Ubuntu)にある構成ファイルを変更してカスタマイズできます。シンプルなものが必要な場合は、cczeまたはcolortailを使用してください。
レペ

それは462メガバイトの周りにあるブースト、依存するように見える
ecsos

3

ログファイルだけでなく、あらゆる種類のテキストを色付けするために機能する1つのソリューションは、Pythonツール「colout」です。

pip install colout
myprocess | colout REGEX_WITH_GROUPS color1,color2... [attr1,attr2...]

正規表現のグループ1に一致する「myprocess」の出力内のテキストは、color1で色付けされ、group 2はcolor2で色付けされます。

例えば:

tail -f /var/log/mylogfile | colout '^(\w+ \d+ [\d:]+)|(\w+\.py:\d+ .+\(\)): (.+)$' white,black,cyan bold,bold,normal

すなわち、最初の正規表現グループ(かっこ)はログファイルの最初の日付に一致し、2番目のグループはpythonファイル名、行番号、関数名に一致し、3番目のグループはその後に続くログメッセージに一致します。これは次のようになります。

色付きフォーマットのログファイル

私の正規表現のいずれにも一致しない行または行の一部はまだエコーされるため、これは「grep --color」とは異なります-出力からは何もフィルタリングされません。

明らかに、これはログファイルをテーリングするだけでなく、あらゆるプロセスで使用できるほど柔軟です。私は通常、何かを色付けしたいときはいつでもその場で新しい正規表現を作成します。このため、カスタムログファイルの色付けツールよりもcoloutの方が好きです。なぜなら、色付けに関係なく、ログ、テスト出力、端末内のコードのスニペットを強調表示する構文など、1つのツールを学ぶだけでよいからです。


1
私は、ソースログファイルを変更し、単一の答えを見ていません
Dani_l

@Dani_lそうですね!これを書いた時点で、ANSI文字がログファイル自体に直接書き込まれるようにログを構成する方法に関する多くの回答であった、この質問と同様の質問の間を行ったり来たりして混乱していたに違いありません。その苦情を回答から削除します。
ジョナサンハートリー

2

恥知らずのプラグ:先ほど述べたオプションと同様のことを行うTxtStyleというツールを作成しました。次のように実行できます。

tail -f /var/log/syslog | txts --regex '\d+'

設定ファイル(~/.txts.conf)で名前付きスタイルを定義し、次のように使用することもできます。

ifconfig | txts --name ifconfig

ifconfigスタイルはデフォルトで定義されています)


2

確かにgrc!

ファイルの正規表現を使用してコラージュをカスタマイズします:〜.grc / conf.tail(または任意の名前)

regexp=.*(select .*)$
colours=unchanged,cyan
=====
regexp=.*(update .*)$
colours=unchanged,bold yellow
=====
regexp=.*(insert .*)$
colours=unchanged,bold yellow
=====
regexp=.*(emp=\d+).*
colours=unchanged,reverse green
=====
regexp=.*http.*/rest/contahub.cmds.(.*?)/(\w*).*$
colours=unchanged,green,magenta
=====
regexp=.*http.*/M/.*\.(.*?Facade)/(\w*).*$
colours=unchanged,underline green,underline magenta

コマンドライン:

grc -c conf.tail tail -f log/tomcat/catalina.out

結果: スクリーンショット

grcを構成するための情報:https : //github.com/manjuraj/config/blob/master/.grc/sample.conf


1

最大3つのパラメーターを受け入れ、テキストファイルに対してgrepのようなフィルターを実行し、テキストを画面にカラーで出力するbash関数を作成しました。

これを行うテール関数も見たいのですが、まだ見つかりませんでした。

この機能は改善することもできます-より良くする方法についての助けをいただければ幸いです。

function multigrep(){

    #THIS WORKS - Recreate this, using input parameters
    #sed -En '/(App)|(Spe)/p' ./flashlog.txt;

    filename="/Users/stevewarren/Library/Preferences/Macromedia/Flash\ Player/Logs/flashlog.txt";
    paramString="";

    for element in "$@"
        do
            #echo $element;
            paramString="$paramString($element)|";
        done

    #TRIM FINAL | OFF PARAMSTRING
    paramString=${paramString:0:${#paramString}-1};

    #CREATE SED EXPRESSION - '/($1)|($2)|(...)/p'
    paramString="'/$paramString/p'";

    #CREATE SED FUNCTION, CALL ON FILE
    paramString="sed -En $paramString ./flashlog.txt"

    echo $paramString;
    echo "${txtbld}$(tput setaf 7)" > ./flashlog_output.txt;
    eval $paramString >> ./flashlog_output.txt;
    echo >> ./flashlog_output.txt;
    #cat ./flashlog_output.txt;

    cat ./flashlog_output.txt | while read LINE
    do

        [[  $1 && ${1-x} ]] && 
            if grep -q $1 <<<$LINE; then
                echo "$(tput setaf 3)$LINE"
            fi

        [[  $2 && ${2-x} ]] && 
            if grep -q $2 <<<$LINE; then
                echo "$(tput setaf 7)$LINE"
            fi


        [[  $3 && ${3-x} ]] && 
            if grep -q $3 <<<$LINE; then
                echo "$(tput setaf 6)$LINE"
            fi

    done
}

1

承知しました !

8つの色変数の定義に基づいて、「egrepi」と呼ばれる関数を長く書きました。これは、 "tail -f"色付き関数のようにパイプされた場合にのみ機能します。

1. setColors

まず、最初に呼び出される色変数関数:


setColors ()
{
set -a
which printf >/dev/null 2>&1 && print=printf || print=print # Mandriva doesn't know about printf

hide='eval tput civis'
show='eval tput cnorm'
CLS=$(tput clear)
bel=$(tput bel)

case ${UNAME} in
AIX)
# text / foreground
N=$(${print} '\033[1;30m')
n=$(${print} '\033[0;30m')
R=$(${print} '\033[1;31m')
r=$(${print} '\033[0;31m')
G=$(${print} '\033[1;32m')
g=$(${print} '\033[0;32m')
Y=$(${print} '\033[1;33m')
y=$(${print} '\033[0;33m')
B=$(${print} '\033[1;34m')
b=$(${print} '\033[0;34m')
M=$(${print} '\033[1;35m')
m=$(${print} '\033[0;35m')
C=$(${print} '\033[1;36m')
c=$(${print} '\033[0;36m')
W=$(${print} '\033[1;37m')
w=$(${print} '\033[0;37m')
END=$(${print} '\033[0m')

# background
RN=$(${print} '\033[6;40m')
Rn=$(${print} '\033[40m')
RR=$(${print} '\033[6;41m')
Rr=$(${print} '\033[41m')
RG=$(${print} '\033[6;42m')
Rg=$(${print} '\033[42m')
RY=$(${print} '\033[6;43m')
Ry=$(${print} '\033[43m')
RB=$(${print} '\033[6;44m')
Rb=$(${print} '\033[44m')
RM=$(${print} '\033[6;45m')
Rm=$(${print} '\033[45m')
RC=$(${print} '\033[6;46m')
Rc=$(${print} '\033[46m')
RW=$(${print} '\033[6;47m')
Rw=$(${print} '\033[47m')

HIGH=$(tput bold)
SMUL=$(tput smul)
RMUL=$(tput rmul)
BLINK=$(tput blink)
REVERSE=$(tput smso)
REVERSO=$(tput rmso)
;;
*)
# text / foreground
n=$(tput setaf 0)
r=$(tput setaf 1)
g=$(tput setaf 2)
y=$(tput setaf 3)
b=$(tput setaf 4)
m=$(tput setaf 5)
c=$(tput setaf 6)
w=$(tput setaf 7)
N=$(tput setaf 8)
R=$(tput setaf 9)
G=$(tput setaf 10)
Y=$(tput setaf 11)
B=$(tput setaf 12)
M=$(tput setaf 13)
C=$(tput setaf 14)
W=$(tput setaf 15)
END=$(tput sgr0)

HIGH=$(tput bold)
SMUL=$(tput smul)
RMUL=$(tput rmul)
BLINK=$(tput blink)
REVERSE=$(tput smso)
REVERSO=$(tput rmso)

# background
Rn=$(tput setab 0)
Rr=$(tput setab 1)
Rg=$(tput setab 2)
Ry=$(tput setab 3)
Rb=$(tput setab 4)
Rm=$(tput setab 5)
Rc=$(tput setab 6)
Rw=$(tput setab 7)
RN=$(tput setab 8)
RR=$(tput setab 9)
RG=$(tput setab 10)
RY=$(tput setab 11)
RB=$(tput setab 12)
RM=$(tput setab 13)
RC=$(tput setab 14)
RW=$(tput setab 15)
;;
esac

BLUEf=${B}
BLUE=${b}
REDf=${R}
RED=${r}
GREENf=${G}
GREEN=${g}
YELLOWf=${Y}
YELLOW=${y}
MANGENTAf=${M}
MANGENTA=${m}
WHITEf=${W}
WHITE=${w}
CYANf=${C}
CYAN=${c}

OK="${RG}${n}OK${END}"
KO="${RR}${n}KO${END}"
NA="${N}NA${END}"

COLORIZE='eval sed -e "s/{END}/${END}/g" -e "s/{HIGH}/${HIGH}/g" -e "s/{SMUL}/${SMUL}/g" -e "s/{RMUL}/${RMUL}/g" -e "s/{BLINK}/${BLINK}/g" -e "s/{REVERSE}/${REVERSE}/g" -e "s/{REVERSO}/${REVERSO}/g"'
LOWS=' -e "s/{n}/${n}/g" -e "s/{r}/${r}/g" -e "s/{g}/${g}/g" -e "s/{y}/${y}/g" -e "s/{b}/${b}/g" -e "s/{m}/${m}/g" -e "s/{c}/${c}/g" -e "s/{w}/${w}/g"'
HIGHS=' -e "s/{N}/${N}/g" -e "s/{R}/${R}/g" -e "s/{G}/${G}/g" -e "s/{Y}/${Y}/g" -e "s/{B}/${B}/g" -e "s/{M}/${M}/g" -e "s/{C}/${C}/g" -e "s/{W}/${W}/g"'
REVLOWS=' -e "s/{Rn}/${Rn}/g" -e "s/{Rr}/${Rr}/g" -e "s/{Rg}/${Rg}/g" -e "s/{Ry}/${Ry}/g" -e "s/{Rb}/${Rb}/g" -e "s/{Rm}/${Rm}/g" -e "s/{Rc}/${Rc}/g" -e "s/{Rw}/${Rw}/g"'
REVHIGHS=' -e "s/{RN}/${RN}/g" -e "s/{RR}/${RR}/g" -e "s/{RG}/${RG}/g" -e "s/{RY}/${RY}/g" -e "s/{RB}/${RB}/g" -e "s/{RM}/${RM}/g" -e "s/{RC}/${RC}/g" -e "s/{RW}/${RW}/g"'
# COLORIZE Usage:
# command |${COLORIZE} ${LOWS} ${HIGHS} ${REVLOWS} ${REVHIGHS}

set +a
}

2. egrepi

そして、効果的でエレガントなegrepi関数:8色以上のカラーサイクリング(ニーズ)および3つの異なるUNIX OSでのコメント付きテスト:


# egrepi() egrep with 8 REVERSE cyclic colorations on regexps almost like egrep
# egrepi 
# current script will work for KSH88, KSH93, bash 2+, zsh, under AIX / Linux / SunOS
egrepi ()
{
args=$*
# colorList=wBcgymrN                                                # KSH93 or bash 3+, not for AIX
# set -A color                                                  # needed with older sh
color[0]=$Rw; color[1]=$RB; color[2]=$Rc; color[3]=$Rg; color[4]=$Ry; color[5]=$Rm; color[6]=$Rr; color[7]=$RN; # this is the only one AIX solution
i=0
unset argsToGrep argsSedColor argsPerlColor

for arg in ${args}
do
    [ "${arg}" == "." ] && arg=\\.                              # if you wanna grep "."
    # color=R${colorList:((${RANDOM: -1:1})):1}                     # bash RANDOMized colors
    # color=R${colorList:$i:1} && let i++ && ((i==8)) && i=0                # KSH93 or bash 3+, not for AIX
    argsToGrep="${argsToGrep}${argsToGrep:+|}${arg}"
    # argsSedColor="${argsSedColor} -e s#${arg}#$n${!color}&${w}#gI"            # AIX KSH88 do not recognise this fucking variable double expansion
    # argsSedColor="${argsSedColor} -e s#${arg}#$n${color[$i]}&${w}#gI"         # AIX neither do include sed with Ignore case
    argsPerlColor="${argsPerlColor}${argsPerlColor:+,}s#${arg}#$n${color[$i]}$&${END}#gi"   # So: gotta use perl
    let i+=1 && ((i==8)) && i=0                             # AIX KSH88 do not recognise "let i++"
done
# egrep -i "${argsToGrep}" | sed ${argsSedColor} | egrep -v "grep|sed"              # AIX sed incompatibility with Ignore case
# (($# > 0)) && (egrep -i "${argsToGrep}" | perl -p -e ${argsPerlColor}) || cat         # this line colors & grep the words, will NOT act as "tail -f"
(($# > 0)) && (perl -p -e ${argsPerlColor}) || cat                      # this line just colors the words
}

3.使い方

コマンド| egrepi word1 .. wordN



1

色コードについては、tputを使用します。

red=$( tput -Txterm setaf 1 )
norm=$( tput -Txterm sgr0 )
bold=$( tput -Txterm bold )

参照用: man tput

次に:

tail -F myfile.log | sed "s/\(.ERROR.*\)/$red$bold\1$norm/g"

まことにありがとうございます。標準的なシェル機能を備えたチャームのように機能します。
vquintans

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.