awk -F: '{ printf "%-3s %-2s","\n" $1 $2; }'
我如何添加颜色代码? '\ E [1;32米'
我尝试添加到printf,它给我输出的string,而不是颜色代码..
'\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下工作。
希望这有助于任何人寻找答案!
正如你所看到的,这些函数和各种初始化可以写出一个相当简单的打印行,如下所示。
print colour("Red")$1colour("Blue")$0colour("None");
对于colour
函数,您可以传入颜色或名称的整数值。 它采用以下格式的参数。
colour( <attribute> , <background-colour> , <foreground-colour> ) colour( <background-colour> , <foreground-colour> ) colour( <foreground-colour> )
您可以选择性地提供所需的参数。
function isnumeric(x) { return ( x == x+0 ); } function name_to_number(name, predefined) { if (isnumeric(name)) return name; if (name in predefined) return predefined[name]; return name; } function colour(v1, v2, v3) { if (v3 == "" && v2 == "" && v1 == "") return; if (v3 == "" && v2 == "") return sprintf("%c[%dm", 27, name_to_number(v1, fgcolours)); else if (v3 == "") return sprintf("%c[%d;%dm", 27, name_to_number(v1, bgcolours), name_to_number(v2, fgcolours)); else return sprintf("%c[%d;%d;%dm", 27, name_to_number(v1, attributes), name_to_number(v2, bgcolours), name_to_number(v3, fgcolours)); } BEGIN { # hack to use attributes for just "None" fgcolours["None"] = 0; fgcolours["Black"] = 30; fgcolours["Red"] = 31; fgcolours["Green"] = 32; fgcolours["Yellow"] = 33; fgcolours["Blue"] = 34; fgcolours["Magenta"] = 35; fgcolours["Cyan"] = 36; fgcolours["White"] = 37; bgcolours["Black"] = 40; bgcolours["Red"] = 41; bgcolours["Green"] = 42; bgcolours["Yellow"] = 43; bgcolours["Blue"] = 44; bgcolours["Magenta"] = 45; bgcolours["Cyan"] = 46; bgcolours["White"] = 47; attributes["None"] = 0; attributes["Bold"] = 1; attributes["Underscore"] = 4; attributes["Blink"] = 5; attributes["ReverseVideo"] = 7; attributes["Concealed"] = 8; } { print colour("Red")$1colour("Blue")$0colour("None"); }
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