>>Примеры таких скриптов могу выслать желающим.
Например, unix.ginras.ru
#!/usr/bin/perl
$f_name = @ARGV[0];
$tmp_f_name = $f_name.".tmp";
$fl_n_body = 1;
$fl_info = 0;
# Постфикс для css файла
$sites = "ginras";
# Строка предшествующая проверяемой
$b_s = "";
ls_dir = grep(chomp,`for i in *; do [ ! -d \$i ] && echo \$i; done |
grep -v $f_name`);
all_dir = grep(chomp,`for i in *; do [ ! -d \$i ] && echo \$i; done |
grep -v $f_name`);
css_files = grep(/\.css$/, @ls_dir);
#Убираем x0D из файла (переводим к unix формату)
system("dos2unix ".$f_name." >/dev/null");
open(F_IN,$f_name) || die "cannot open $f_name for reading: $!";
open(F_OUT,">".$tmp_f_name) || die "cannot open $tmp_f_name for write: $!";
while (<F_IN>) {
$s = $_;
# Концовка файла
if ( $s =~ /\<\/body/ ){
$fl_n_body = 1;
}
# Начало полезной информации
if ( $s =~ /\<\!--Begin--\>/) {
$fl_info = 1;
}
if ($fl_n_body || $fl_info) {
# Завершение заголовка файла
if ( $s =~ /\<body/ ){
$fl_n_body = 0;
}
# Завершение полезной информации
if ( ($s =~ /\<\!--End--\>/) && $fl_info ) {
$fl_info = 0;
}
# Учет файлов внутри полезной информации и заголовке - в списке
# остаются только ненужные
@ls_dir = grep (!($s =~ /$_/), @ls_dir);
# Замена путей к полезным файлам
grep(($s =~ s/($_)/img\/\1/g), @all_dir);
# Создание уникального css
if (grep(($s =~ /$_/), @css_files)) {
$s =~ s/HREF=\"([a-zA-Z\/]+)\d*\.css/HREF="\1-$sites.css/g;
}
print F_OUT $s;
}
$b_s = $s;
}
close(F_OUT) || die "can't close $tmp_f_name: $!";
close(F_IN) || die "can't close $f_name: $!";
# Удаление ненужных файлов
unlink @ls_dir;
# Переименование временного результирующего файла в исходный
rename $tmp_f_name, $f_name;
# Переименование css файлов
foreach (@css_files) {
$new = $_;
$new =~ s/([a-zA-Z]+)\d*\.css/\1-$sites.css/;
rename $_, $new;
}
# Создание каталога для фалов и перенос их в него
cur_dir = grep(chomp,`for i in *; do [ ! -d \$i ] && echo \$i; done |
grep -v $f_name`);
if (scalar(@cur_dir)) { mkdir "img"; }
grep(rename($_, "img/".$_), @cur_dir);
knoppix.ru
#!/usr/bin/perl
$f_name = @ARGV[0];
$tmp_f_name = $f_name.".tmp";
$fl_n_body = 1;
$fl_info = 0;
# Постфикс для css файла
$sites = "knoppix";
# Строка предшествующая проверяемой
$b_s = "";
ls_dir = grep(chomp,`for i in *; do [ ! -d \$i ] && echo \$i; done |
grep -v $f_name`);
all_dir = grep(chomp,`for i in *; do [ ! -d \$i ] && echo \$i; done |
grep -v $f_name`);
css_files = grep(/\.css$/, @ls_dir);
#Убираем x0D из файла (переводим к unix формату)
system("dos2unix ".$f_name." >/dev/null");
open(F_IN,$f_name) || die "cannot open $f_name for reading: $!";
open(F_OUT,">".$tmp_f_name) || die "cannot open $tmp_f_name for write: $!";
while (<F_IN>) {
$s = $_;
# Концовка файла
if ( $s =~ /(?i)\<\/BODY/ ){
$fl_n_body = 1;
}
# Начало полезной информации
if (($s =~ /\<center\>\<font
size\=\"\+1\"\>(.+)\<\/font\>\<\/center\>/) || (($s =~
/^(?i)\s*\<table\>/) && ($b_s =~ /^\s*$/))) {
$s = "<center>".$1."</center>\n";
$fl_info = 1;
}
if ($fl_n_body || $fl_info) {
# Завершение заголовка файла
if ( $s =~ /(?i)\<body/ ){
$s =~ s/(?i)(\<body)(.*)(\>)/\1\3/;
$fl_n_body = 0;
}
# Завершение полезной информации
if ( ($s =~ /^\s*\<\/font\>$/) && $fl_info ) {
$s = "";
$fl_info = 0;
}
# Мусор
if ( ($s =~ /^(?i)\s*\<\/?font\ssize=\"[\+\-]{1}\d+\">$/) &&
$fl_info ) {
$s = "";
}
# Учет файлов внутри полезной информации и заголовке - в списке
# остаются только ненужные
@ls_dir = grep (!($s =~ /$_/), @ls_dir);
# Замена путей к полезным файлам
grep(($s =~ s/($_)/img\/\1/g), @all_dir);
# Создание уникального css
if (grep(($s =~ /$_/), @css_files)) {
$s =~ s/HREF=\"([a-zA-Z\/]+)\d*\.css/HREF="\1-$sites.css/g;
}
print F_OUT $s;
}
$b_s = $s;
}
close(F_OUT) || die "can't close $tmp_f_name: $!";
close(F_IN) || die "can't close $f_name: $!";
# Удаление ненужных файлов
unlink @ls_dir;
# Переименование временного результирующего файла в исходный
rename $tmp_f_name, $f_name;
# Переименование css файлов
foreach (@css_files) {
$new = $_;
$new =~ s/([a-zA-Z]+)\d*\.css/\1-$sites.css/;
rename $_, $new;
}
# Создание каталога для фалов и перенос их в него
cur_dir = grep(chomp,`for i in *; do [ ! -d \$i ] && echo \$i; done |
grep -v $f_name`);
if (scalar(@cur_dir)) { mkdir "img"; }
grep(rename($_, "img/".$_), @cur_dir);
linuxrsp.ru
#!/usr/bin/perl
$f_name = @ARGV[0];
$tmp_f_name = $f_name.".tmp";
$fl_n_body = 1;
$fl_info = 0;
# Постфикс для css файла
$sites = "linuxrsp";
# Строка предшествующая проверяемой
$b_s = "";
ls_dir = grep(chomp,`for i in *; do [ ! -d \$i ] && echo \$i; done |
grep -v $f_name`);
all_dir = grep(chomp,`for i in *; do [ ! -d \$i ] && echo \$i; done |
grep -v $f_name`);
css_files = grep(/\.css$/, @ls_dir);
#Убираем x0D из файла (переводим к unix формату)
system("dos2unix ".$f_name." >/dev/null");
open(F_IN,$f_name) || die "cannot open $f_name for reading: $!";
open(F_OUT,">".$tmp_f_name) || die "cannot open $tmp_f_name for write: $!";
while (<F_IN>) {
$s = $_;
# Концовка файла
if ( $s =~ /\<\/body/ ){
$s = "</body".$';
$fl_n_body = 1;
}
# Начало полезной информации
if ( ($s =~ /\<\!--\s*\d*\s*--\>/) && ($b_s =~ /\<br\>$/) &&
!$fl_info ) {
$fl_info = 1;
}
if ($fl_n_body || $fl_info) {
# Завершение заголовка файла
if ( $s =~ /\<body/ ){
$fl_n_body = 0;
}
# Завершение полезной информации
if ( ($s =~ /\<\/table\>/) && ($b_s =~ /\<\/tr\>$/) && $fl_info ) {
$fl_info = 0;
}
# Учет файлов внутри полезной информации и заголовке - в списке
# остаются только ненужные
@ls_dir = grep (!($s =~ /$_/), @ls_dir);
# Замена путей к полезным файлам
grep(($s =~ s/($_)/img\/\1/g), @all_dir);
# Создание уникального css
if (grep(($s =~ /$_/), @css_files)) {
$s =~ s/HREF=\"([a-zA-Z\/]+)\d*\.css/HREF="\1-$sites.css/g;
}
print F_OUT $s;
}
$b_s = $s;
}
close(F_OUT) || die "can't close $tmp_f_name: $!";
close(F_IN) || die "can't close $f_name: $!";
# Удаление ненужных файлов
unlink @ls_dir;
# Переименование временного результирующего файла в исходный
rename $tmp_f_name, $f_name;
# Переименование css файлов
foreach (@css_files) {
$new = $_;
$new =~ s/([a-zA-Z]+)\d*\.css/\1-$sites.css/;
rename $_, $new;
}
# Создание каталога для фалов и перенос их в него
cur_dir = grep(chomp,`for i in *; do [ ! -d \$i ] && echo \$i; done |
grep -v $f_name`);
if (scalar(@cur_dir)) { mkdir "img"; }
grep(rename($_, "img/".$_), @cur_dir);
Надеюсь аналогия ясна...
P.S. Скрипты - не истина в последней инстанции...