2013-04-22 64 views
25

Tôi đang cố gắng thay thế tất cả các dấu ngoặc kép trong một chuỗi có dấu nháy đơn. đây biểu hiện của tôi:Thay thế tất cả các dấu ngoặc kép bằng dấu nháy đơn

echo "<a href=\"#\" id=\"resendActivationMailLink\">here</a>" | sed "s/\"/'/" 

tiếc là chỉ có các dấu nháy kép đầu tiên được thay thế: S

<a href='#" id="resendActivationMailLink">here</a> 

bất kỳ ý tưởng?

Trả lời

55

Bạn cần phải vượt qua g cờ để sed:

sed "s/\"/'/g" 
+10

Để giúp nhớ điều này, đó là 'g' cho' toàn cầu'. – RichieHindle

+0

'echo '" Chào buổi sáng hơi say "| sed 's/"/ \\"/g'' – YumYumYum

32

Bạn có thể sử dụng tr đây, súc tích và ít trích dẫn nhức đầu:

tr '"' "'" 
+1

+1 Tuyệt vời thay thế và defenetly tốt hơn sau đó sed. – Zounadire

3

Điều này có thể làm việc cho bạn:

sed "y/\"/'/" file 
+0

Điều này xuất ra các tập tin trên dòng lệnh, làm thế nào để bạn làm cho nó thay đổi tập tin chính nó? –

+1

@JasonBourne bạn có thể thêm công tắc '-i' để chỉnh sửa tệp tại chỗ tức là" sed -i "y/\"/'/ "tệp' – potong

Các vấn đề liên quan