在Shell输出中保留Mysql的表格样式
正常情况下,直接在SHELL中使用mysql命令的话,会输出以下格式的内容:
+———-+——-+—————————–+ | ServerId | Users | Ip | +———-+——-+—————————–+ | 12 | 7159 | s12.app697459698.twsapp.com | | 14 | 6432 | s14.app697459698.twsapp.com | | 15 | 7542 | s15.app697459698.twsapp.com | | 16 | 8732 | s16.app697459698.twsapp.com | | 17 | 4724 | s17.app697459698.twsapp.com | +———-+——-+—————————–+
但是使用重定向把内容输出到文件或者用tee命令等,都会变成以下格式的内容:
ServerId Users Ip 12 7159 s12.app697459698.twsapp.com 14 6432 s14.app697459698.twsapp.com 15 7542 s15.app697459698.twsapp.com 16 8732 s16.app697459698.twsapp.com 17 4724 s17.app697459698.twsapp.com
我也试过使用错误重定向2>&1
但也没用,无奈之下只能是用expect写脚本了:(nice_sql.sh)
#!/usr/bin/expect -f
spawn -noecho mysql -ubake -pfish -Dserver -e "SELECT ServerId,Users,Ip FROM outline"
expect
然后加个可执行权限,使用./nice_sql.sh > nice_out.txt
把输出重定向到文件即可。
查看内容就会发现保留了表格样式,当然这样的方法比较麻烦,但不失为一个解决方案。