各行の最初の部分に色を割り当てます。

各行の最初の部分に色を割り当てます。

次のチャット履歴があります。

(15:12:56) rubo77: mist migration
(15:05:22) hans: ist hugo da?
(15:36:13) rubo77: test
(13:30:15) rubo77: what are the access data?
(15:06:38) [email protected]: user :  [email protected] (https://somewhere.de:8080/index.php#)
(15:06:38) [email protected]: password :  test

sedユーザー名を別の色に変更するにはどうすればよいですか?

それともこれより簡単なツールがありますかsed

答え1

以下を使用できます。

sed 's/) \(.*\):/) \x1b[31m\1\x1b[0m:/'

たとえば、

cat 1| sed 's/) \(.*\):/) \x1b[31m\1\x1b[0m:/'

バージョン2:

COLOR=32
sed 's/) \(.*\):/) \x1b['${COLOR}'m\1\x1b[0m:/'

色番号を変更できます。

バージョン 3:

COLOR=32
sed 's/) \([[:alpha:][:digit:][:space:]@\.]*\):/) \x1b['${COLOR}'m\1\x1b[0m:/1'

答え2

awk最も単純でなければなりません。

awk '{$2="\033[01;31m"$2"\033[00m"; print $0}' logfile

答え3

cczeを使用して出力に色を割り当てることができます。

この状況に最適化されていませんが、良いパターンをたくさん提供します。

答え4

まあ、あなたが望むもの(マルチユーザーの着色)は可能ですが、完全に簡単ではありません。

要求された操作を実行するために非常に長いsed式を生成できます;。これは、このシェルスクリプトが実行するアクションであり、クラスタで使用されるアクティビティを表します。 http://fotis.web.cern.ch/fotis/QTOP/
(スクリーンショットの最後の部分は、説明されているユースケースのインスタンスを示しています。)
アイデアは、qtop.colormapを解析し、それをsed式にコンパイルして使用することです。

警告:シェルスクリプトと深いsed表現の使用により、ソフトウェアエンジニアリングの面でメンテナンスが非常に悪いです。しかし、もちろんできます。

関連情報