Có thể một số người giúp tôi chạy lệnh dưới đây. Tôi cũng đã cố gắng thoát khỏi dấu nháy đơn nhưng không may mắn.Perl regex trích dẫn đơn
perl -pi.bak -e 's/Object\.prototype\.myString='q'//' myfile.html
Có thể một số người giúp tôi chạy lệnh dưới đây. Tôi cũng đã cố gắng thoát khỏi dấu nháy đơn nhưng không may mắn.Perl regex trích dẫn đơn
perl -pi.bak -e 's/Object\.prototype\.myString='q'//' myfile.html
dấu ngoặc kép nên làm việc:
perl -pi.bak -e "s/Object\.prototype\.myString='q'//" myfile.html
Bạn có thể hoặc không muốn có một sửa đổi lần g
trên regex đó. Và có thể bạn sẽ muốn thực hiện một số diff
sau để đảm bảo rằng bạn không mang theo HTML.
Đây là những gì làm việc cho tôi. Tôi muốn xóa trích dẫn và một số ký tự khác (dấu cách, dấu ngoặc đơn, -,.) Từ biến 'tên': prxchange ("s/| - | \. | \ (| \) | \ '//", - 1, tên) –
Vấn đề không phải với Perl, nhưng với vỏ của bạn. Để xem những gì đang xảy ra, hãy thử này:
$ echo 's/Object\.prototype\.myString='q'//'
s/Object\.prototype\.myString=q//
để làm cho nó làm việc, bạn có thể thay thế mỗi quote duy nhất với '\''
, như thế này:
$ echo 's/Object\.prototype\.myString='\''q'\''//'
s/Object\.prototype\.myString='q'//
hoặc bạn có thể tiết kiệm một vài ký tự bằng cách viết chỉ:
$ echo 's/Object\.prototype\.myString='\'q\''//'
s/Object\.prototype\.myString='q'//
hoặc thậm chí chỉ:
$ echo 's/Object\.prototype\.myString='\'q\'//
s/Object\.prototype\.myString='q'//
hoặc thậm chí:
$ echo s/Object\\.prototype\\.myString=\'q\'//
s/Object\.prototype\.myString='q'//
dấu ngoặc kép, như suggested by mu is too short, sẽ làm việc ở đây cũng vậy, nhưng có thể gây ra những bất ngờ không mong muốn trong những tình huống khác, vì nhiều ký tự thường thấy trong mã Perl, như $
, !
và \
, có ý nghĩa đặc biệt đối với vỏ ngay cả bên trong dấu ngoặc kép.
Tất nhiên, một giải pháp thay thế là để thay thế các dấu nháy đơn trong regexp của bạn với bát phân hoặc hex mã \047
hoặc \x27
thay vì:
$ perl -pi.bak -e 's/Object\.prototype\.myString=\x27q\x27//' myfile.html
Trong trường hợp của tôi, đề xuất cho '\ x27' có vẻ đơn giản và đáng tin cậy nhất - đã làm việc tuyệt vời! – zeroasterisk
\ Q ... \ E cũng không hoạt động – user1018279