2013-05-22 32 views

Trả lời

9

Bạn có thể không trực tiếp thoát khỏi nó trong dấu nháy đơn, vì vậy để có được một giá duy nhất bạn cần phải làm điều gì đó như:

$ echo 'i'\''m a string with a single quote' 
i'm a string with a single quote 

này kết thúc phần trích dẫn, thoát một giá duy nhất vì nó sẽ xuất hiện bên ngoài báo giá và sau đó bắt đầu lại trích dẫn. Kết quả sẽ vẫn là một đối số.

5

Sử dụng dấu ngoặc kép quanh mã của bạn thay vì:

find . | xargs perl -pi -e "s/'conflicts' => '',//g" 
+3

Tôi sẽ không khuyên bạn nên điều này, vì một vài ký tự thường được sử dụng trong mã Perl (đáng chú ý nhất là '!') Có một ý nghĩa đặc biệt để bash ngay cả bên trong dấu ngoặc kép. –

+0

Thời gian duy nhất tôi sẽ sử dụng '" 'thay vì' ''là trên Windows, trong đó các dấu nháy đơn không hoạt động. –

13

FatalError và gpojd có cả hai giải pháp tốt nhất định. Tôi sẽ làm tròn này ra với một lựa chọn khác:

find . | xargs perl -pi -e 's/\x27conflicts\x27 => \x27\x27,//g' 

này hoạt động bởi vì trong Perl, các ký hiệu s/.../.../ hỗ trợ xuyệc ngược-thoát. \x27 là lối thoát thập lục phân (' là U + 0027).

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