Ayuda con MySQL (.sql) y la secuencia de comandos shell
Pregunta
¿Cómo se llama al siguiente en un archivo .sql?
mysql -u username -h serverip db -e "select a, b, c, d from mytable" > '/home/dump/result.txt';
a continuación, tendrá que convertir el archivo de ficha separada a csv por lo que quiero usar sed.
- ¿Hay una manera de hacerlo todo en uno ¿línea? (Append sed de comandos para convertir el archivo .txt a CSV)
- ¿Cómo utilizar una os.system llamada en el archivo sql? lo hará trabajo?
Solución
Prueba esto:
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'
Vea docs para --batch
y --skip-column-names
para obtener más información.
Otros consejos
¿Qué hay de ejecutar esta consulta a través del cliente de la consola mysql
:
SELECT ... FROM ... INTO OUTFILE '/path/to/file.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY "\n"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow