shell - How to replace the following text using sed? -


नमस्ते मैं document.write (unescape ("% 3Cscript src = '" + gaJsHost + "google -analytics.com/ga.js 'type =' text / javascript '% 3E% 3C / script% 3E'));

के साथ

(समारोह () {var गा = document.createElement (जैसे स्क्रिप्ट '); ga.type =' पाठ / जावास्क्रिप्ट '; ga.async सच =; ga.src = (' https: '== document.location.protocol? 'https: // ssl': 'http: // www') '.google-analytics.com / ga.js' +; वर एस = document.getElementsByTagName (जैसे स्क्रिप्ट ') [0]; s.parentNode.insertBefore (Ga, s);}) ();

सभी घटनाओं में ...

इसलिए मैंने इसे नीचे कोड का उपयोग किया है।

 < कोड> लगता है / cygdrive / सी / XAMPP / htdocs / समाचार प्रकार च -exec एसईडी -is # document.write (अनएस्केप ( "% 3Cscript src = '' + gaJsHost +" google-analytics.com/ga.js 'प्रकार = 'टेक्स्ट / जावास्क्रिप्ट'% 3E% 3C / स्क्रिप्ट% 3 ई ")); # (फ़ंक्शन () {var ga = document.createElement ('script'); ga.type = 'text / javascript'; ga.async = सच; ga.src = ('https:' == document.location.protocol? 'Https: // ssl': 'http: // www') + '.google- analytics.com / ga.js'; var s = document.getElementsByTagName ('script') [0]; S.parentNode.insertBefore (जीए, एस);}) (); # जी {} \;   

लेकिन यह जगह नहीं है क्या बचने में कोई समस्या है?

धन्यवाद

आपको तर्क को उद्धृत करना होगा Sed के लिए, और किसी नेस्टेड कोट्स से बचें। अन्यथा यह:

  s # document.write (unescape ("% 3Cscript src = '" + gaJsHost + ...   

शेल द्वारा अलग शब्दों में तोड़ दिया जाएगा, बल्कि sed के लिए एक तर्क के रूप में पारित किए जाने के बजाय।

आपको पूरे sed स्क्रिप्ट ( s # से # को कोटेशन में # भाग) के लिए, मैं एकल उद्धरणों का चयन करूंगा, फिर प्रत्येक ' को \' के साथ स्क्रिप्ट में बदलें।

( इसके अलावा, आप क्यों find -exec की बजाय मैं क्या कर रहा हूं?)

Comments