12
此文件有3個域。我想要第2場在綠色和白色(注:黑色背景)第三,所以我嘗試:如何用不同的字段以不同的顏色打印awk的結果?
awk '{print "\033[0;32m"$1"\033[0m", "\033[0;32m"$2"\033[0m", "\033[0;37m"$3"\033[0m"} }' chrono.txt
,一切都是綠色......
我必須如何進行(如果可能的話)?
此文件有3個域。我想要第2場在綠色和白色(注:黑色背景)第三,所以我嘗試:如何用不同的字段以不同的顏色打印awk的結果?
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)
}
使用awk函數的替代方法是在shell變量中傳遞顏色。例如。
RED='\033[01;31m'
GREEN='\033[01;32m'
YELLOW='\033[01;33m'
BLUE='\033[01;34m'
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"}'
非常感謝你,它精美的作品 – ThG
@ThG很高興我能幫助:-) –
謹慎使用這些功能。他們使用外部字符串作爲格式說明符。如果字符串包含格式字符(%等),則會失敗。更好地使用'function red(string)'printf(「%s%s%s」,「\ 033 [1; 31m」,string,「\ 033 [0m」); } –