Ich muss die Suche und Ersetzung iterativ in mehreren SQL-Anweisungen durchführen:
Von:
CREATE TABLE `Old_Name` (
Zu:
ALTER TABLE `Old_Name` RENAME TO `New_Name`
Die obige Abfrage enthält Backticks `
. Ich habe Folgendes versucht
sed -i -r "s/CREATE TABLE \`$search\` \(/ALTER TABLE \`$search\` RENAME TO \`$replacement\`/g" /query.txt;
Stattdessen wird eine Eingabe in der Befehlszeile erstellt. Aber wenn ich ein Leerzeichen dahinter hinzufüge $replacement
, läuft es normal. Aber ich will den Raum danach nicht mehr New_Name
.
Beachten Sie, dass ich nicht weiß, ob dies tatsächlich durch die Backticks verursacht wird oder ob es sich um ein Interpolationsproblem mit Variablennamen handeln könnte. Wie kann ich dieses Problem unabhängig vom Fall lösen?
$search
und zu$replacement
?