这个文件有3个字段。我想要把前两个字段标记为绿色,第三个字段标记为白色(注意:黑色背景)。因此我尝试了以下代码:
awk '{print "\033[0;32m"$1"\033[0m", "\033[0;32m"$2"\033[0m", "\033[0;37m"$3"\033[0m"} }' chrono.txt
而且一切都是绿色的...
我应该如何操作(如果可能的话)?
要从awk获得有色彩的输出,您可以使用以下方法。
function red(s) {
printf "\033[1;31m" s "\033[0m "
}
function green(s) {
printf "\033[1;32m" s "\033[0m "
}
function blue(s) {
printf "\033[1;34m" s "\033[0m "
}
{
print red($1), green($2), blue($3)
}
RED='\033[01;31m'
GREEN='\033[01;32m'
YELLOW='\033[01;33m'
BLUE='\033[01;34m'
NONE='\033[0m'
echo "Col1 Col2 Col3 Col4" | \
awk -v r=$RED -v y=$YELLOW -v g=$GREEN -v b=$BLUE -v n=$NONE \
'{printf r$1n y$2n g$3n b$4n "\n"}'
function red(string) { printf ("%s%s%s", "\033[1;31m", string, "\033[0m "); }
这样的东西。 - Juan Calerofunction yellow(s) {return "\033[1;93m" s "\033[1;39m"}
- Tim