Hai să trollăm, dar să şi învăţăm să scriem regex-uri...<br><br>2013/4/26 Andrei Picus <span dir="ltr"><<a href="mailto:office.nightcrawler@gmail.com" target="_blank">office.nightcrawler@gmail.com</a>></span><br><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">2013/4/26 George-Daniel MITRA <span dir="ltr"><<a href="mailto:george.mitra@cti.pub.ro" target="_blank">george.mitra@cti.pub.ro</a>></span><br>
<div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
sed 's/tine\ /tin\ /g'<br></blockquote><div><br></div><div>De ce faci search dupa spatiu (\ ) daca-l inlocuiesti tot cu un spatiu?! <br></div></div></div></div></blockquote><div><br>Cred că a vrut să caute doar cuvântul întreg "ţine", şi de-asta a pus condiţia să fie urmat de un spaţiu.<br>
Desigur, şi mai corect ar fi fost să pună cerinţă să fie spaţiu şi înainte.<br>În practică, pentru acest gen de restricţii se folosesc "ancore" (ex: <b>\b</b> - word boundary [1] ). <br><br>Deci, mai corect, ar fi fost <i>sed 's/\btine\b/tin/g'</i> (cu sau fără global, după preferinţe).<br>
<br>Şi, ca să fim [syntax] grammar-nazy până la capăt, nu trebuia pus backslashul înainte de spaţiu (în bash, în interiorul unei constante 'single quoted', orice caracter este trimis ca atare, nu se poate face escaping; aici ai avut noroc că sed ştie să considere '\ ' ca spaţiu, deşi nu este foarte corect din punct de vedere al sintaxei regex).<br>
<br>[1] <a href="http://www.regular-expressions.info/wordboundaries.html">http://www.regular-expressions.info/wordboundaries.html</a><br><br></div></div>