bash 从日志文件中读取带有颜色、条纹颜色的文本

bash reading text in from a log file with colours, strip colour

我想从安装日志文件中读取密码并从该行中删除初始文本,这样我只剩下密码本身,这样我就可以在脚本变量中使用它。我可以做到这一点,但是当它读取行时,它会带来颜色(该行在日志文件中突出显示为绿色)我想从行中去除颜色但我不知道如何。我在该行中阅读的代码片段只是:

grep -h "MySQL root password" /root/logs/installer.log |
while read mysqlpass ; do
mysqlpass="${mysqlpass//MySQL root password: }"
printf "$mysqlpass\n"
done

这样试试:

mysqlpass="${mysqlpass//MySQL root password: }"
mysqlpass=$( echo "$mysqlpass" | sed -e $'s#3\[[;0-9]*m##g' )

查看 this page 上的 ansi_colours.sh 脚本以更好地理解颜色。