Ajuda com mysql (.sql) e script de shell
Pergunta
Como eu chamo o seguinte em um arquivo .sql?
mysql -u username -h serverip db -e "select a, b, c, d from mytable" > '/home/dump/result.txt';
Vou então ter que converter o arquivo separado da TAB em CSV para o qual quero usar o SED.
- Existe uma maneira de fazer tudo em uma linha? (Anexe o comando sed para converter o arquivo .txt em csv)
- Como usar um OS.System Ligue para .SQL FILE? será que vai dar certo?
Solução
Experimente isso:
mysql --batch --skip-column-names -u username -h serverip db \
-e "select a, b, c, d from mytable" \
| sed -e 's/\t/,/g' \
> '/home/dump/result.txt'
Veja documentos para --batch
e --skip-column-names
para mais informações.
Outras dicas
Que tal executar esta consulta via mysql
Cliente de console:
SELECT ... FROM ... INTO OUTFILE '/path/to/file.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY "\n"
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow