Você pode canalizar:
cat text.txt sql_out.sql | mysql --host=...
Como alternativa, para evitar a necessidade de criar um novo arquivo:
(echo "USE db1;"; cat sql_out.sql) | mysql --host=...
Eu tenho um arquivo criado com o mysqldump que é 11GB. Eu preciso usar o comando "mysql" para importá-lo em um banco de dados, mas preciso adicionar:
USE db1;
no topo. Levaria uma eternidade para reescrever o arquivo. Existe uma maneira de concatenar outro arquivo no início do redirecionamento de entrada para enganá-lo e vê-lo como um único arquivo?
text.txt conteúdo:
USE db1;
sql_out.sql conteúdo:
data from mysqldump using the --skip-add-drop-table and --no-create-info options
comando tentado:
mysql --host=<host> --user=<user> --password=<pwd> < echo $(cat text.txt sql_out.sql)
Quando faço isso, obtenho:
echo: No such file or directory
Se eu tentar sem o eco, recebo:
$(cat text.txt sql_out.sql): ambiguous redirect
Existe uma maneira de fazer isso?
Você pode usar a substituição de processo aqui:
mysql --host=<host> --user=<user> --password=<pwd> < <(cat text.txt sql_out.sql)
a sintaxe <(...)
trata um processo como um arquivo
Tags command-line mysql input