awk -F: '{ printf "%-3s %-2s","\n" $1 $2; }'
カラーコードを追加するにはどうすればよいですか? '\e[1;32m'
printf に追加しようとすると、カラー コードの代わりに文字列が出力されます。
'\e[1;32m' .......
\033[?m
適切に引用すると色が付きます:
awk 'BEGIN{ print "\033[34msomething in colour\033[0m";}'
$1
以下のエスケープを解除する必要があることに注意してください。
echo something | awk '{ print "\033[34m"$1" in colour \033[0m";}'
awk
'\e' をエスケープ文字のコードとして認識しません。回避策は次のとおりです(よりエレガントなものが存在する可能性があります):
# Decimal 27 is the ASCII codepoint for the escape character
awk '{ printf "%c[1;32m foo\n", 27 }' <<<foo
awk 'BEGIN{print "^[[1;33mYELLOW"}'
文字列YELLOWを黄色(色)で印刷します
最初^[
に入力する必要があることに注意ctrl-v
してくださいESC
表示するスクリーンショットを追加します。
上のスクリーンショットは、zshとbashで動作することを示しています。
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