13
awk -F: '{ printf  "%-3s %-2s","\n" $1 $2; }'

カラーコードを追加するにはどうすればよいですか? '\e[1;32m'

printf に追加しようとすると、カラー コードの代わりに文字列が出力されます。

'\e[1;32m' .......
4

7 に答える 7

15

\033[?m適切に引用すると色が付きます:

awk 'BEGIN{ print "\033[34msomething in colour\033[0m";}'

$1以下のエスケープを解除する必要があることに注意してください。

echo something | awk '{ print "\033[34m"$1" in colour \033[0m";}'
于 2014-08-04T09:11:04.583 に答える
9

awk'\e' をエスケープ文字のコードとして認識しません。回避策は次のとおりです(よりエレガントなものが存在する可能性があります):

# Decimal 27 is the ASCII codepoint for the escape character
awk '{ printf "%c[1;32m foo\n", 27 }' <<<foo
于 2013-01-23T14:38:13.983 に答える
1
 awk 'BEGIN{print "^[[1;33mYELLOW"}' 

文字列YELLOWを黄色(色)で印刷します

最初^[に入力する必要があることに注意ctrl-vしてくださいESC

表示するスクリーンショットを追加します。

ここに画像の説明を入力してください

上のスクリーンショットは、zshとbashで動作することを示しています。

于 2013-01-23T14:46:28.890 に答える
-2
BDF()
{
#awk 'BEGIN{ print "\033[34msomething in colour\033[0m";}'
#bdf $spool $data $sysout ~ /home/fnsonlh  |grep -v avail| awk '{print $5" "$4"        "}' | tail -n +2 |tr -d "\012"
bdf $spool $data $sysout ~ /home/fnsonlh  |grep -v avail| awk '{if($4 > 89)
 {
   print "\033[0;31m"$5" "$4"\033[0m      "
  }
 else
 {
  print "\033[0;32m"$5" "$4"\033[0m      "
 }}' |tail -n +2 |tr -d "\012"
#"\012 is new line caracter"
echo
#/usr/bin/w -u
uptime
}
#nishant.chawre@gmail.com
于 2015-05-03T04:22:10.660 に答える