Показать сообщение отдельно

  #3  
Старый 04.08.2009, 15:09
papenkin
Новичок
Регистрация: 08.05.2008
Сообщений: 21
С нами: 9477937

Репутация: 0
По умолчанию

Цитата:

dig555 написал(а):

Есть SSH доступ. Есть папка. В ней куча подпапок и файлов.
Задача - найти все файлы, которые называются допустим "myfile.html" (порядка 50 одинаковых файлов, с одинаковым названием), и заменить в них строчку http://site.com/dir/?page=100 на http://another.com/dir2/?page=250
Подскажите, плз, возможно ли это сделать через шелл? Как это должно выглядеть?
Наверное стоит смотреть в сторону sed, вроде как:
sed 's/stringa1/stringa2/g' example.txt replace "string1" with "string2" in example.txt

Да, смотреть надо в сторону седа, только из-за наличия "/" в том что ты ищещь/на что меняешь надо изменить синтаксис на такой:
sed -e "s#http://site.com/dir/?page=100#http://another.com/dir2/?page=250#g"
Да и скриптик можно для это цели заюзать:

Код:


Код:
#!/bin/bash
FILES=`find . -name myfile.html`
for i in ${FILES} do
   sed -i -e "s#http://site.com/dir/?page=100#http://another.com/dir2/?page=250#g" $i
done
Кладешь его корень того, где искать будешь, делаешь исполняемым (chmod +x script.sh) и пускаешь. Должно робить.
ЗЫ. Писал из головы, но должно работать. На всякий случай сделай бекап.
 
Ответить с цитированием