Отправляет email-рассылки с помощью сервиса Sendsay

Помогите написать скрипт

Добрый день.

Хочу написать небольшой скрипт, но не знаю всех операторов bash.

Короче, нужно заглянуть во все подкаталоги данного, проверить все *.htm(l)
файлы на наличие подстроки charset=windows-1251, перекодировать с помощью
recode и заменить на utf-8 c помощью sed'a. Перекодировать и заменять я могу.

Я не знаю, как зайти в каждый подкаталог и проверить, есть ли файлы *.html, а
в них подстрока charset=windows-1251.

Если кому не трудно, подскажите.

Спасибо

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 35583; Возраст листа: 2015; Участников: 1498
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/816474

Ответить   Thu, 29 Jan 2009 23:12:01 +0300 (#816474)

 

Ответы:

Владимир Никанчук пишет:

а

Я бы сделал что-то вроде:
$ find -type f -name '*.html' > file-list
$ sed s+"./"+"sed --in-place
s\+\"charset=windows-1251\"\+\"charset=utf8\"\+ "+ file-list > script.sh
$ sh script.sh

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 35584; Возраст листа: 2016; Участников: 1498
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/816479

Ответить   Thu, 29 Jan 2009 22:33:23 +0200 (#816479)

 

Владимир Никанчук wrote:

а

Я бы сделал такой скриптик:

#!/bin/bash

find directory_with_files -name "*.html" -type f -print | while read
filename
do
if [[ `grep -l 'charset=windows-1251' "$filename"` > 0 ]]
then
recode ваши_опции "$filename"
sed -i s/windows-1251/utf8/ "$filename"
fi
done

Ответить   Fri, 30 Jan 2009 16:28:14 +0300 (#816704)