Tôi cần thay thế một số văn bản trong một tệp văn bản bằng một thay thế. Thông thường tôi sẽ làm một cái gì đó như
sed -i 's/text/replacement/g' path/to/the/file
Vấn đề là cả hai text
và replacement
là các chuỗi phức tạp chứa dấu gạch ngang, dấu gạch chéo, dấu gạch chéo, dấu ngoặc kép, v.v. Nếu tôi thoát khỏi tất cả các nhân vật cần thiết bên trong text
mọi thứ sẽ nhanh chóng không thể đọc được. Mặt khác, tôi không cần sức mạnh của các biểu thức thông thường: tôi chỉ cần thay thế văn bản theo nghĩa đen.
Có cách nào để thay thế văn bản mà không sử dụng các biểu thức thông thường với một số lệnh bash không?
Nó sẽ là khá tầm thường để viết một kịch bản làm điều này, nhưng tôi nghĩ rằng nên có một cái gì đó đã tồn tại.
bash
luôn được phát hành với Microsoft Word? ;) Không chỉ đùa thôi. OP có thể muốn làm điều này trên một máy từ xa hoặc cho một loạt các tập tin.
sed
, đây có lẽ là một nỗ lực vô ích khi xem xét tất cả các chuyển đổi và sự khác biệt nền tảng.
find and replace all