Внимание! В связи с устареванием топика эта страница была взята из кэша.
|
Norman(Luxuru)
Зарегистрирован: 14.10.03
Сообщения: 146
|
Добавлено: 01/08/04 в 17:26
|
|
И опять вопрос о работе с шелом. Кто нибуть знает, команду, действие в mc, или какую нибуть утилиту, либо скрипт, для поиска и замены заданной группы! строк в большом кол-ве файлов через шелл.
|
K началу
|
|
|
Pentarh
Зарегистрирован: 05.04.03
Сообщения: 2390
|
Добавлено: 01/08/04 в 17:48
|
|
Я знаю, что это можно сделать какими-то хитрыми командами юникса. Но мы простых путей не ищем Мой скрипт для обхода дерева каталогов, поиска и замены строки (с регулярными выражениями) на другую. Создаем файл 'script.php", делаем чмод +exec, правим его и запускаем './script.php'.
Код: | #!/usr/local/bin/php <? $files="(pictext|htm|html)$";//Какие расширения файлов обрабатывать
$test_folder='/home/httpdocs/domain.com';// Начиная откуда искать
function FTest($content) { if (eregi('искомая строка',$content)) // Если $content содержит искомую строку (RegExp) return true; return false; }
function FModify($content) { $content=eregi_replace("что ищем","на что заменяем",$content); return $content; }
function CleanDir($dir) { global $files; if (!is_dir($dir)) return; $d=opendir($dir); if ($d) { while ($file=readdir($d)) { if (ereg('^\.+$',$file)) continue; if (is_dir($dir.'/'.$file)) { CleanDir($dir.'/'.$file); continue; } if (eregi($files,$file)) { $fc=file_get_contents($dir.'/'.$file); if (FTest($fc)) { echo "Found: {$dir}/{$file}\n"; $fp=fileperms($dir.'/'.$file); $fc=FModify($fc); $ff=fopen($dir.'/'.$file,'w'); if ($ff) { fwrite($ff,$fc); fclose($ff); chmod($dir.'/'.$file,$fp); } } } } } closedir($d); } echo "Starting\n"; CleanDir($test_folder); ?>
|
|
K началу
|
|
|
Kerp
Зарегистрирован: 22.02.03
Сообщения: 3
|
Добавлено: 03/08/04 в 23:20
|
|
Norman(banned) писал: | И опять вопрос о работе с шелом. Кто нибуть знает, команду, действие в mc, или какую нибуть утилиту, либо скрипт, для поиска и замены заданной группы! строк в большом кол-ве файлов через шелл. |
Код: | find DIRECTORY -name \*.html -exec perl -npi -e 's!http://www.microsoft.com!http://www.redhat.com!g' {} \; |
|
K началу
|
|
|
Pentarh
Зарегистрирован: 05.04.03
Сообщения: 2390
|
Добавлено: 04/08/04 в 04:54
|
|
Я ж сказал, что простых путей мы не ищем
Чес говоря, мне проще написать то что я написал, чем то что написал Kerp. Хотя эффект у этих двух вещей одинаковый
|
K началу
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |
Внимание! В связи с устареванием топика эта страница была взята из кэша.
|