我有以下代碼:輸出的桑達着色工作不正常
#!/bin/bash
reset=$(tput sgr0)
bold=$(tput bold)
red=$(tput setaf 1)
white=$(tput setaf 7)
pattern[0]='[0-9]'
replacement[0]="${white}${bold}&${reset}"
pattern[1]='[a-z]'
replacement[1]="${red}${bold}&${reset}"
args=()
for ((i=0; i < ${#pattern[@]}; i++)) ; do
args+=(-e "s/${pattern[i]}/${replacement[i]}/g")
done
echo "asdf1234" | sed "${args[@]}"
它輸出:添加
asdfmm1mmm2mmm3mmm4m
即額外m
字符,所有的字符都是紅色的,數字是不突出顯示。
我的願望是用紅色字母和白色數字。我怎樣才能做到這一點?
如果輸入包含\ 001等,可能會中斷。 – choroba
謝謝。這工作。但是'00x'代碼使得代碼不可讀。我願意使用變量名來保持它的可讀性。你能告訴我該怎麼做嗎? – george
然後只是把'\ ooo'分配給變數。例如:'_red = $'\ 003'' – pynexj