Tôi muốn thay thế tất cả các dấu nháy đơn trong một chuỗi với hai dấu nháy đơn bằng cách sử dụng sed. Nhưng khi chuỗi chứa & lệnh sed không thay thế dấu nháy đơn sau đó. hãy chia sẻ một số suy nghĩ về điều này.Làm thế nào để thoát và trong khi sử dụng sed
5
A
Trả lời
13
Bạn không cần phải thoát khỏi bất cứ điều gì trong đầu vào:
$ echo "123 ' foo & b'ar" | sed "s/'/''/g"
123 '' foo & b''ar
Tuy nhiên, trong 'thay thế' một phần của s
lệnh &
có một ý nghĩa đặc biệt: nó có nghĩa là 'phù hợp'. Đó là lý do lệnh trên có thể được viết lại như sau:
$ echo "123 ' foo & b'ar" | sed "s/'/&&/g"
123 '' foo & b''ar
thoát nó với một \
như mọi thứ khác mà cần phải được thoát, nếu cần thiết:
$ echo "123 ' foo & b'ar" | sed "s/'/'\&'/g"
123 '&' foo & b'&'ar
5
Nó dễ dàng hơn để trả lời nếu bạn gửi mã của bạn, nhưng tôi đoán bạn không thoát khỏi dấu và. Thay đổi &
thành \&
nếu bạn muốn có ký hiệu chữ cái.
Xem phần 3.1.2 của The sed FAQ để biết thêm chi tiết, nếu bạn tò mò.
0
Đó là làm việc cho tôi
bash>echo "'This is a string with 'single quote' & '&'" | sed "s/'/''/g"
''This is a string with ''single quote'' & ''&''
Các vấn đề liên quan
- 1. Sử dụng sed trong một makefile; làm thế nào để thoát khỏi các biến?
- 2. Làm thế nào để sử dụng sed trong một Makefile
- 3. Làm thế nào để bạn sử dụng sed từ Perl?
- 4. Báo giá thoát khi sử dụng SSH
- 5. Làm thế nào để sử dụng một dòng mới thay thế trong một BSD sed?
- 6. Thoát các chuỗi sed đúng
- 7. Làm cách nào để sử dụng "sed" để xóa 2 dòng sau khi khớp/khớp?
- 8. sed + làm thế nào để có được chữ thứ hai (string) sau khi "=" separator bởi sed
- 9. Làm thế nào để sử dụng và khi nào là memmove sử dụng tốt trong C?
- 10. làm thế nào để thoát khỏi nhân vật khi sử dụng phía máy chủ delimiters
- 11. làm thế nào để sử dụng sed thay thế mô hình chuỗi với dấu chéo ngược
- 12. Làm thế nào để sử dụng sed để trích xuất chuỗi
- 13. Làm thế nào để sử dụng dấu ngoặc kép trong chuỗi khi sử dụng ký hiệu @?
- 14. Sử dụng sed và grep để tìm kiếm và thay thế
- 15. Làm thế nào để thay thế một chuỗi trong nhiều tập tin bằng cách sử dụng grep và sed khi đối số -i không được hỗ trợ?
- 16. Làm thế nào để thoát khỏi một NSString để sử dụng trong NSURL?
- 17. thoát dấu phẩy khi sử dụng String.split
- 18. Làm thế nào để sử dụng một biến bash script với sed
- 19. Làm thế nào để thêm dòng mới sử dụng sed (mac)
- 20. Làm thế nào để cạo bỏ nhân vật cuối cùng bằng cách sử dụng sed?
- 21. Sử dụng sed để thay thế dòng đầu tiên khi kết hợp được tìm thấy
- 22. Làm cách nào để sử dụng SED để tìm và thay thế chuỗi URL bằng ký tự "/" trong chuỗi được nhắm mục tiêu?
- 23. Làm cách nào để thoát khỏi dấu gạch chéo ngược trong tập lệnh sed được nhúng trong tập lệnh bash
- 24. làm thế nào để chèn một dòng bằng cách sử dụng sed trước một mẫu và sau một số dòng?
- 25. Làm thế nào để kịch bản sed này nhanh hơn?
- 26. Làm thế nào để thoát khỏi html?
- 27. Làm thế nào để thay thế cho dấu nháy đơn 'bên trong một tập tin sử dụng SED
- 28. Làm thế nào để tránh thoát kép trong chuỗi C#?
- 29. Thoát khỏi '\' nhân vật trong chuỗi thay thế trong một biểu thức sed
- 30. Làm thế nào để thoát mysql trong Magento?
Này, tôi muốn thay thế một chuỗi với '&' trong chuỗi đầu ra của tôi. Tôi đã thử '" & "', '\ &', '\\ &', '\\\ &', '" '\ &' "' dựa trên các câu trả lời khác nhau trên web nhưng không có công trình, bất kỳ đề xuất nào? – Ava
'\ &' hoạt động cho tôi. Ví dụ, tôi có thể thay thế tất cả các trường hợp 'amp' bằng' & 'bằng cách sử dụng' sed "s/amp/\ &/g" '. Nếu bạn vẫn gặp sự cố, bạn nên đăng câu hỏi mới bằng chuỗi nhập và mã của bạn. –
Phải. Tôi đã sử dụng một tệp khác không có thay đổi :( – Ava