Помощь с MySQL (.sql) и Shell Script - PullRequest
1 голос
/ 11 мая 2010

Как мне вызвать следующее в .sql файле?

mysql -u username -h serverip db -e "select a, b, c, d from mytable" > '/home/dump/result.txt';

Затем мне нужно будет преобразовать разделенный табуляцией файл в csv, для которого я хочу использовать sed.

  1. Есть ли способ сделать все это в одном линия? (добавьте команду sed для преобразования файл .txt в csv)
  2. Как использовать системный вызов os.sql? Будет ли он работа

Ответы [ 2 ]

2 голосов
/ 11 мая 2010

Как выполнить этот запрос через mysql консольный клиент:

SELECT ... FROM ... INTO OUTFILE  '/path/to/file.csv' 
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY "\n"
0 голосов
/ 11 мая 2010

Попробуйте это:

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'

См. Документы для --batch и --skip-column-names для получения дополнительной информации.

...