【问题标题】:Formatting SHOW ENGINE INNODB STATUS outputs when “\n” are embedded as Text当“\n”嵌入为文本时,格式化 SHOW ENGINE INNODB STATUS 输出
【发布时间】:2026-02-06 20:25:02
【问题描述】:
我指的是这个link
我通过这个命令有一个输出:
mysql -e "show engine innodb status" -u -p database > mydumpfile.txt
但是,我使用的任何编辑器(less、vim、kwrite)都显示\n,而不是真正的新行。
如何在 shell 中使用 sed、awk 或任何其他工具完成替换?
【问题讨论】:
标签:
mysql
shell
sed
awk
newline
【解决方案1】:
您可以使用以下 sed 语法。
sed -i -e 's|\\n|\n|g' mydumpfile.txt
如果你想直接从 mysql 正确输出,那么在 mysql 命令中使用 --table 选项。
mysql --table -e "show engine innodb status" -u -p database > mydumpfile.txt
【解决方案2】:
尝试在 SQL 命令中简单地添加\G,例如:
mysql -e "show engine innodb status\G" -u -p database > mydumpfile.txt
或者尝试使用-r(或--raw)开关运行mysql客户端。
mysql -re "show engine innodb status" -u -p database > mydumpfile.txt
使用这两种方法中的任何一种,您也可以跳过中间文件,直接通过管道输入less。如:
mysql -re "show engine innodb status" -u -p database | less
附注,指定数据库不是必需的。我把它包括在内只是为了与你的问题相提并论。如果您还设置了 my.cnf 文件,因此不需要输入密码,则可以将其缩短为:
mysql -re "show engine innodb status" | less