Portál AbcLinuxu, 12. května 2025 05:07

Dotaz: Bash + Regularni vyraz

24.3.2010 18:04 Andrej.Man
Bash + Regularni vyraz
Přečteno: 383×
Odpovědět | Admin

Ahoj,

na web se mi dostal nejaky parazit a ja nemam zalohy,

do kazdeho js pridal na konec neco jako

var x;if(x!='_' && x!='m'){x='_'};var y=document;this._l=false;var yi='s|cUrIi3pIte'.replace(/[e\|U3I]/g, '');

potrebuji nejaky prikaz pro nalezeni presne tech souboru kde to je

analizu jsem udelal z techto retezcu (kazdy z jineho souboru)

var d;if(d!='' && d!='r'){d=''};this.i=false;var mj;if(mj!='mm' && mj!='mk'){mj='mm'};
var x;if(x!='_' && x!='m'){x='_'};var y=document;this._l=false;var yi='s|cUrIi3pIte'.replace(/[e\|U3I]/g, '');
var x;if(x!='_' && x!='m'){x='_'};var y=document;this._l=false;var yi='s|cUrIi3pIte'.replace(/[e\|U3I]/g, '');
var x;if(x!='_' && x!='m'){x='_'};var y=document;this._l=false;var yi='s|cUrIi3pIte'.replace(/[e\|U3I]/g, '');


pokusil jsem se to najit toimto prikazem

find ./ | xargs grep "var [a-z];if([a-z]!=[^'.*'$]){[a-z]=[^'.*'$]};" -sl

abych to timto prikazem odstranil

#!/bin/sh
S=`awk 'END {print NR-4}' $1`; sed -e "$S,$ d" $1 > tmp.tmp.tmp ; mv tmp.tmp.tmp $1

bohuzel ten prvni prikaz nejak nefunguje (zrejme spatny regularni vyraz)

vyrazy nejsou moji silnou strankou, poradi nekdo jak na to?


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

wamba avatar 24.3.2010 19:38 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: Bash + Regularni vyraz
Odpovědět | | Sbalit | Link | Blokovat | Admin
[^'.*'$] tohle je nějaká podivná konstrukce, alespoň já ji neznám. Asi by tam mělo být jen .*
This would have been so hard to fix when you don't know that there is in fact an easy fix.
24.3.2010 22:26 Andrej.Man
Rozbalit Rozbalit vše Re: Bash + Regularni vyraz
to bylo na vyhledani tohoto retezce var d;if(d!='' && d!='r'){d=''}; jak rikam regulerni vyrazy nejsou moje silna stranka
24.3.2010 21:05 Sinuhet | skóre: 31
Rozbalit Rozbalit vše Re: Bash + Regularni vyraz
Odpovědět | | Sbalit | Link | Blokovat | Admin

Nestacilo by neco jako grep -l -r "'cUrIi3pIte'\.replace"? Na smazani bych potom dal sed -i.old -ne "/cUrIi3pIte'\.replace/!p" soubory.

25.3.2010 01:16 Andrej.Man
Rozbalit Rozbalit vše Re: Bash + Regularni vyraz
ne vsude je retezec cUrIi3pIte navic promenne jsou casto jine
Řešení 1× (Andrej.Man (tazatel))
25.3.2010 10:41 Sinuhet | skóre: 31
Rozbalit Rozbalit vše Re: Bash + Regularni vyraz

Ok, tak takhle:

$ grep -l -r "var \([a-z]\);if(\1!='[^']*' && \1!='[^']*'){\1='[^']*'};" ./
25.3.2010 10:48 Andrej.Man
Rozbalit Rozbalit vše Re: Bash + Regularni vyraz
To je ono. Dekuji :)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.