救いの手を差し伸べる!
これは(本当に必要なときに)改善できますが、かなりうまく機能します。
$ cat >~/bin/hilight <<EOF
#!/bin/bash
while [ $# -gt 0 ]
do
COMANDO=$COMANDO's/'$1$'/\033[01;'$2$'m\033[K\\0\033[m\033[K/g\n'
shift;shift;
done
sed -e "$COMANDO"
EOF
簡単にするために、hilightは引数のペアを受け入れます(最初に一致、2番目に色)このスクリプトでは、属性は常に太字です
man console_codes(グラフィックレンディション)を読んでカラーエスケープセキュリティを確認するか、これを試してください
for attrib in $(seq 0 12); do
for color in $(seq 30 37) $(seq 40 47) $(seq 90 97); do
printf %b " $attrib $color:\033[$attrib;${color}mhi, dudes\033[m"
done
done
これを使用すると、次のような重要な欠点があります。
$ dmesg | hilight \\[ 34 ] 34
しかし、これはまったくありません:
$ dmesg | hilight \\[ 34 ] 34 [[:digit:]] 31
[:digit:]は、以前の自殺のエスケープグループ内の数字を検索するためです。
何かのようなもの:
$ cat /var/log/kern.log | hilight kernel 31 a 34 et 33
常に例外として機能します。
timeコマンドを使用すると、経過時間に4の増分があることがわかりました。
sedコマンドを、好きな、またはニーズに合った他のパーサー(awkなど)に置き換えることができます。