Вставить данные из STDIN в определенную позицию строки - PullRequest
0 голосов
/ 01 ноября 2019

Случай : я хочу вставить некоторые данные из файла в определенную позицию строки.

Пример :

cat users.log | mysql -h localhost -u mysql -e 'SELECT id FROM users WHERE ${USERS_IDS}'

Iхочу заменить строку $ {USERS_IDS} на данные из файла
Я уверен, что этот случай очень популярен, но я не нашел подходящего решения

1 Ответ

1 голос
/ 01 ноября 2019

Чтобы вставить содержимое файла в определенную позицию строки, вы используете возможности вашей оболочки.

Например, Bash имеет $(< имя файла ) конструкция :

mysql -h localhost -u mysql -e 'SELECT id FROM users WHERE '"$(< users.log)"

Если данные, которые нужно вставить, нужно немного отредактировать, у вас есть $( команда ) конструкция:

mysql -h localhost -u mysql -e 'SELECT id FROM users WHERE '"$(< users.log sed -e 's/.../.../')"

Независимо от того, подстановка файла илиПодстановка команды должна быть заключена в двойные кавычки или не зависит от конкретного варианта использования.

И, если предполагаемое использование действительно для подачи значений в команде MySQL, остерегайтесь Таблицы Бобби .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...