Tôi cần thực hiện tìm kiếm và thay thế lặp đi lặp lại trong một số câu lệnh SQL:
Từ:
CREATE TABLE `Old_Name` (
Đến:
ALTER TABLE `Old_Name` RENAME TO `New_Name`
Các truy vấn trên có chứa backticks `
. Tôi đã thử làm như sau
sed -i -r "s/CREATE TABLE \`$search\` \(/ALTER TABLE \`$search\` RENAME TO \`$replacement\`/g" /query.txt;
Nó tạo ra một enter trên dòng lệnh thay thế. Nhưng nếu tôi thêm một khoảng trống phía sau $replacement
, nó sẽ chạy bình thường. Nhưng tôi không muốn không gian sau New_Name
.
Lưu ý, tôi không biết liệu điều này thực sự gây ra bởi backticks hay nó có thể là một vấn đề nội suy tên biến. Bất kể trường hợp nào, làm thế nào tôi có thể giải quyết vấn đề này?
$search
và$replacement
?