Tôi thực sự biết câu trả lời cho câu hỏi này, tuy nhiên nhiều hơn một lần tôi đã nhìn thấy một số đồng nghiệp của tôi bị mắc kẹt về vấn đề này, vì vậy tôi nghĩ rằng nó sẽ là đáng giá để tài liệu trên VÌ THẾ. Nếu câu hỏi đã tồn tại, tôi sẽ sẵn sàng xóa nó đi.Làm thế nào để vượt qua một biến có chứa dấu gạch chéo để sed
Vì vậy, ở đây nó đi ...
Làm thế nào để bạn vượt qua một biến có chứa dấu gạch chéo như một mô hình để sed
.
Ví dụ, nếu tôi có biến sau đây:
var="/Users/Documents/name/file"
Tôi muốn vượt qua nó để sed
như vậy:
sed "s/$var/replace/g" $file
Tuy nhiên tôi nhận được lỗi. Làm thế nào tôi có thể phá vỡ vấn đề?
đề xuất Không làm việc. Tôi thử sed -i "s ~ blah ~ $ var ~ g file" và nhận được: "sed -e expression # 1, char 70: unterminated' s 'command ". Tôi đã xác nhận rằng thủ phạm là một dấu gạch chéo trong $ var. Các biến thể của giải pháp này là tất cả các nơi và không ai trong số họ làm việc. Đã cập nhật gần đây sed? Tôi đang trên v4.2.2 trên Ubuntu 14.04.4 LTS. –
Điều đó phụ thuộc vào giá trị của '$ var' – anubhava
Không hoạt động với ~ như @PaulEricson đã quan sát, nhưng vẫn hoạt động với | –