我已经设法从 bash 命令行运行 MySQL,并使用来自文件的查询,如下所示:
mysql -u root -p$(cat pass.txt) < file1.sql
结果如下:
id name food confirmed signup_date email salary
1 John Casserole Y 2012-04-11 NULL 125.00
2 Tom BBQ Y 2012-04-18 NULL 50.00
3 Tina Salad Y 2012-04-10 NULL 200.25
4 Mike Fish N 2012-04-19 NULL 50.00
5 July Cake N 2012-04-29 NULL 300.00
一切都很好,该命令有效,但有一个问题:所有输出列都未对齐,如您所见。一切都很乱。通常当我遇到这种问题时,我会用“tr”命令来解决,我是这样尝试的:
mysql -u root -p$(cat pass.txt) < file1.sql | tr -s " "
但结果是一样的,没有任何变化。此外,我什至不能使用“剪切”命令。我试过了 :
mysql -u root -p$(cat pass.txt) < file1.sql | cut -d " " -f2
仍然是相同的输出。奇怪的。谁能帮帮我吗 ?如何使用来自文件的查询从 bash 运行 MySQL,并因此获得良好的对齐格式?非常感谢。
您正在寻找
column
命令在你的情况下,我认为这应该有效:
输出:
当以非交互方式使用时(如您的情况,输入是通过标准输入从文件中读取的),
mysql
客户端以制表符分隔的格式显示查询结果:来自
man mysql
:因为默认分隔符是制表符而不是空格,所以您的
cut
命令也应该使用默认tab
分隔符:如果您想要与交互模式相同的漂亮打印,您可以通过添加
-t
or--table
选项来指定: