上面的答案似乎并没有完全回答原始问题,我也不确定这是否也可以,但希望这可能对某人有所帮助:
请参阅如何以 CSV 格式输出 MySQL 查询结果?很多关于如何的评论sed
。例如,基于原始参数,以下可能就足够了:
mysql --batch -u user -h remote.host.tld database --port 3306 -ppass -e "SELECT * FROM webrecord_wr25mfz_20101011_175524;" | sed 's/\t/,/g' 2>&1
这类似于上面的答案,但重定向到stdout
而不是blah.csv
.
但是,(虽然不确定如果您需要保留标签是否可行,但有很多方法可以解决这个问题),我使用https://stackoverflow.com/a/2543226/2178980正确转义双引号和转换为逗号分隔:
mysql --batch -u user -h remote.host.tld database --port 3306 -ppass -e "SELECT * FROM webrecord_wr25mfz_20101011_175524;" | perl -lpe 's/"/\\"/g; s/^|$/"/g; s/\t/","/g' 2>&1
- 执行
sql
"SELECT * FROM webrecord_wr25mfz_20101011_175524;"
via mysql
(此输出将以制表符分隔)
- 通过管道转换为逗号分隔
perl -lpe 's/"/\\"/g; s/^|$/"/g; s/\t/","/g'
- 有输出去
stdout
通过附加2>&1