У меня большой дамп sql, который имеет 1 инструкцию вставки в строке. Я хочу, чтобы иметь возможность передавать это на xargs, чтобы я мог замедлить записи. В основном я хочу выполнить ряд строк, спящий режим, затем продолжить выполнение и т. Д.
У меня есть это:
cat file.sql | xargs -n50 -d "\n" sh -c '(echo "$@" | mysql db_name); sleep 10'
Но проблема в том, что я верю где-то в файле есть \n, вызывающий разрыв sql. Я использую INSERT IGNORE, и это приводит к отсутствию строк.
Я не хочу проходить через файл и исправлять \n. Есть ли способ использовать строку вместо \n?
Я пробовал:
cat file.sql | xargs -L 50 sh -c '(echo "$@" | mysql db_name); sleep 10'
, но я получаю:
xargs: unmatched single quote; by default quotes are special to xargs unless you use the -0 option