サイズが11GBのmysqldumpを使用して生成されたファイルがあります。 「mysql」コマンドを使用してデータベースにインポートする必要がありますが、以下を追加する必要があります。
USE db1;
上に。ファイルの再構築に時間がかかります。入力リダイレクトの先頭に別のファイルをリンクして単一のファイルとして扱うように欺く方法はありますか?
テキスト.txtコンテンツ:
USE db1;
sql_out.sqlコンテンツ:
data from mysqldump using the --skip-add-drop-table and --no-create-info options
次のコマンドを試してください。
mysql --host=<host> --user=<user> --password=<pwd> < echo $(cat text.txt sql_out.sql)
これを行うと、次のようになります。
echo: No such file or directory
エコなしで試してみると、次のような結果が得られます。
$(cat text.txt sql_out.sql): ambiguous redirect
これを行う方法はありますか?
答え1
次のように入力できます。
cat text.txt sql_out.sql | mysql --host=...
または、新しいファイルの作成を防ぐには、次の手順を実行します。
(echo "USE db1;"; cat sql_out.sql) | mysql --host=...
答え2
ここでは、プロセス置換を使用できます。
mysql --host=<host> --user=<user> --password=<pwd> < <(cat text.txt sql_out.sql)
構文は<(...)
プロセスをファイルとして扱います。