Только не пинайте ногами - я в этом валенок)) Надо из командлайна сделать следующее: Начиная с текущего пути и внутрь рекурсивно найти все файлы с расширением *.php, после чего внутри каждого заменить <h2> на <h1>, и </h2> на </h1>.
Код (Text): clear count_mak=0 count_templ=0 parse_files() { for i in * do if [ -d "$i" ] then cd "./$i" parse_files fi done for f in *".php" do if [ -f "$f" ] then count_mak=`expr $count_mak + 1` echo "$f" sed 's/<h2>/<h1>' "$f" > "$f.temp_file123" rm -f "$f" mv "$f.temp_file123" "$f" fi done for f in *".php" do if [ -f "$f" ] then count_templ=`expr $count_templ + 1` echo "$f" sed 's/<\/h2>/<\/h1>' "$f" > "$f.temp_file123" rm -f "$f" mv "$f.temp_file123" "$f" fi done cd .. return } parse_files echo "count_first_replace = $count_mak" echo "count_second_replace = $count_templ" Примерно такая шляпа на баше. Была ошибка, подправил.
rei3er Код (Text): find . -name "*.php" -exec sed -n -i "" 's/<\([/]*\)h2>/<\1h1>/g;p' {} \; Вот так работает.
rei3er Только что проверил -). Не работает у меня это. Вернее на экран или в файл вывести это можно, но как сохранить замену в каждом файле не врублюсь. И что за опция -i у sed? IMHO в exec несколько команд не засунешь, или я не прав? P.S проверяю на Linux.
rei3er Да, я уже понял, что старые версии не поддерживают этот флаг. У меня на работе 3.2 и я обломался. -). Поэтому мне приходится вызывать в exec другой скрипт, в котором sed в начале записывает во временный файл, а потом уже из него записывать в нужный -). Вот такие пироги.