Я использую оболочку bash с Perl v 5.18.2. Я бегу это заявлениеКак выполнить поиск и замену в поиске и замене инструкции perl?
perl -pi -e "s/([^,]+),([^,]+),([^,]+),(.*[^\n]+)\n/select '\$1', u.id, u.first_Name, u.last_name, u.url FROM user u, user_role ur where u.id = ur.user_id and lower(ur.role_id) = '\$2' and lower(u.first_name) = lower('\$3') and lower(u.last_name) = lower('\$4');/g" /tmp/users.csv
Но то, что я хочу сделать, это как-то до того, как «$ 3» и «$ 4» аргументы помещаются в раздел замены этого PERL заявления, я хочу, чтобы избежать каких-либо одинарные кавычки, что могут появиться в них, чтобы операторы SQL работали корректно (это будет работать в MySQL 5.5.18). Как мне настроить выше, так что, когда perl заменяет аргументы $ 3 и $ 4, он заменяет одиночные кавычки экранированными котировками MySQL?
«Я хочу избежать каких-либо одиночных кавычек, которые могут появиться в них, чтобы операторы SQL выполнялись правильно». Таким образом, это безумие. Используйте [DBI] (https://metacpan.org/pod/DBI) и [заполнители] (https://metacpan.org/pod/DBI#Placeholders-and-Bind-Values). – ThisSuitIsBlackNot
Итак, как вы это делаете? – Dave