加颜色容易,去颜色难!
找到了解决方法:
sed -r 's/'$(echo -e "\033")'\[[0-9]{1,2}(;([0-9]{1,2})?)?[mK]//g'
Remove color codes (special characters) with sed Using sed (commandlinefu.com)
demo:
#!/bin/bash
echo -e "\033[33mboth\033[0m"
strval=`echo -e "\033[33mboth\033[0m"`
echo $strval >> test.log
echo "$strval-2" |sed -r 's/'$(echo -e "\033")'\[[0-9]{1,2}(;([0-9]{1,2})?)?[mK]//g' >> test.log
test.log:
^[[33mboth^[[0m
both-2