[ Milantex @ 15.06.2009. 11:38 ] @
Pozdrav,
Imam problem sa regular expressions kada hocu da napisem komandu koja pretrazuje neku datoteku za "precizno definisani string", a ne "sablon" i ceo red u toj datoteci brise!

string je slecdeci:
Code:
if(!funcion_exists('tmp_

Dakle, imam neki exploit u gomili datoteka (200+) koje sam nasao grepom, mrzi me da kopam jednu po jednu da trazim i brisem taj deo koda, pa bih uradio skriptu, ali nikako ne mogu da nateram skriptu da radi, jer ne znam kako da sed nateram da shvati string kao "apsolutan, takav kakav je", a ne da ga tretira kao sablon, a pored toga, ne znam koje karaktere treba da escape-ujem!

Pokusao sam:
Code:
sed "/if(!funcion_exists('tmp_/d" filename.php 
ali nije uspelo.
Pokusao sam i:
Code:
grep -v "if(!funcion_exists('tmp_" filename
pa da taj ispis prepisem u isti fajl posle, ali ni to nije upalilo.

Ne vidim u cemu je problem, osim u mom definisanju stringa! Da li iko moze da mi pomogne da mi napise sed kod koji ce da obrise ceo red u kome se u datoteci pojavljuju sledeci tekstovi:
Code:
if(!function_exists('tmp_
?><?php echo '<script type="text/javascript">var
print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/></head><body><script>function

Za ta tri pokusavam da uradim da brise ceo red gde se nalaze!

Please help... nisam bas unix expert! :D
[ uranium @ 15.06.2009. 12:12 ] @
Čini mi se da je ipak jednostavnije bez sed ...

prvo ubaci u zaseban fajl sve stringove koje tražiš
( svaki na zasebnoj liniji )
[ u primeru sam ga nazvao patterns, a fajl koji sređuješ - fix.me ]

onda je rešenje recimo:


fgrep -v -f patterns fix.me > fixed
[ Milantex @ 15.06.2009. 12:41 ] @
Super!
Hvala puno, ovo je bas ono sto mi je trebalo!
mada mi i dalje nije jasno zasto ono moje grep -v "string" < file nije htelo da radi, ali nema veze.
Thanx man!
[ jablan @ 15.06.2009. 12:45 ] @
Citat:
Milantex: mada mi i dalje nije jasno zasto ono moje grep -v "string" < file nije htelo da radi, ali nema veze.

Zato što ti taj grep juri regexp, a u tvom stringu imaš karaktere koji imaju posebno značenje kada se koriste kao regexp (npr. zagrade). Sa druge strane, fgrep pattern koristi kao fiksni string, a ne regularni izraz.

Poz.
[ Milantex @ 15.06.2009. 13:11 ] @
:D
Pih... i mislio sam da je do reg. exp. ali nisam znao kako da ga zaobidjem... probao sam i za ' i sa " navodima stringova, ali nije radilo.
Hvala! Sada znam za fgrep :D
Pozdrav!