異なる色を使用して、同じ出力から異なるテキストブロックに色を割り当てます。

異なる色を使用して、同じ出力から異なるテキストブロックに色を割り当てます。

入力()または出力()>>>という署名された方向にI / Oデータを出力するスクリプトがあります。<<<<<<>>>

<timestamp> >>>>>>>>>>
loads
of
output

<timestamp> <<<<<<<<<<
loads
of
input

この出力を取得して、入力をある色で色付けし、出力を別の色で色付けしたいと思います。git diffファイルバージョンの色の違いに似ています。

最小限の入力(好ましくは1行)でこれを行うにはどうすればよいですか?

ベストアンサー1

おそらく次のようなものがawkあなたに役立ちます:

awk 'BEGIN{ce="\033[0m"}
     />>>/{cs="\033[1;31m"}
     /<<</{cs="\033[1;32m"}
     {print cs$0ce}' your.data

それは:

BEGIN {
    ce = "\033[0m"
}
/>>>/ {
    cs = "\033[1;31m"
}
/<<</ {
    cs = "\033[1;32m"
}
{
    print cs $0 ce
}

おすすめ記事