Замена в DreamWeaver через регулярные выражения

V1
На сайте с 12.07.2013
Offline
44
1202

Добрый день!

Знатоки помогите, пожалуйста, с регулярным выражением в "Поиск и замена" DreamWeaver.

Есть 1000 файлов в которых есть адрес в конце которого число 0001. Нужно произвести замену этого числа в каждом файле увеличивая его на +1. То есть файл_0002.txt будет содержать "адрес_0002", файл_1000.txt будет содержать "адрес_1000"

Получаем в поле "Найти" число 0001, а какое регулярное выражение будет в поле "Заменить на"?

W
На сайте с 02.10.2014
Offline
8
#1

По вашим примерам не видно, что бы что-то увеличивалось.

V1
На сайте с 12.07.2013
Offline
44
#2
wimbo:
По вашим примерам не видно, что бы что-то увеличивалось.

Есть 1000 файлов:

файл_0001.txt (содержит строку: адрес_0001.html)

файл_0002.txt (содержит строку: адрес_0001.html)

файл_0003.txt (содержит строку: адрес_0001.html)

...

файл_1000.txt (содержит строку: адрес_0001.html)

Нужно сделать:

файл_0001.txt (содержит строку: адрес_0001.html)

файл_0002.txt (содержит строку: адрес_0002.html)

файл_0003.txt (содержит строку: адрес_0003.html)

...

файл_1000.txt (содержит строку: адрес_1000.html)

siv1987
На сайте с 02.04.2009
Offline
427
#3

Инкремент на дриме вы врядли сделаете. Проще пару строк на php написать.

W
На сайте с 02.10.2014
Offline
8
#4

Ну тут просто регуляркой не обойдешься.

Вот например я создал 4 файла:

$ ls -1

файл_0001.txt

файл_0002.txt

файл_0003.txt

файл_1000.txt

Все они содержат запись: адрес_0001.html:

$ cat *

адрес_0001.html

адрес_0001.html

адрес_0001.html

адрес_0001.html

Тут вам нужно взять имя каждого файла: вытащить оттуда номер, например по маске: \d{4}

Потом залезть в содержимое данного файла и заменить адрес на имя файла. Например на предыдущем шаге вытаскиваем номер файла и сохраняем в переменню $var.

Потом лезем в содержимое файла и делаем уже find/replace.

\d{4} заменяем на значение переменной $var.

Тут нужно написать маленький скрипт на любом языке либо.

Идею дал, попробуйте реализовать.

---------- Добавлено 06.10.2014 в 19:48 ----------

siv1987, прав.

Я к сожалению не знаю, что такое DreamWeaver.

А как написать пару строк на PHP том же написал выше алгоритм

V1
На сайте с 12.07.2013
Offline
44
#5

Это не обязательно делать в DreamWeaver. Подойдет любой другой вариант. Может кто сталкивался и имеет готовое решение.

W
На сайте с 02.10.2014
Offline
8
#6

Ну на баше это выглядит так.

Было так:

$ ls -1 | grep -v tes

файл_0001.txt
файл_0002.txt
файл_0003.txt
файл_1000.txt

$ cat *

адрес_0001.html
адрес_0001.html
адрес_0001.html
адрес_0001.html

Т.е. 4 файла как Вы описали выше.

я создал скрипт test.sh с таким содержимым:

$ cat test.sh 

#!/bin/bash
for file in $(ls -1| grep -v test.sh)
do
VAR=`echo $file | egrep -o '[0-9]{4}'`
sed -i "s/[0-9]\{4\}/$VAR/" $file;
done

поместил его в каталог с файлами над которыми я буду проводить изменение.

Сделал его исполняемым:

chmod +x test.sh

и выполнил его

./test.sh

В итоге я получил вот такое:

$ cat 

адрес_0001.html
адрес_0002.html
адрес_0003.html
адрес_1000.html*

Вроде то, что вам нужно.

V1
На сайте с 12.07.2013
Offline
44
#7

wimbo, Спасибо большое за помощь. Попробую вставить код в виде кнопки в Total Commander. Надеюсь заработает и я смогу сэкономить кучу времени.

siv1987
На сайте с 02.04.2009
Offline
427
#8
Vladislav1977:
Попробую вставить код в виде кнопки в Total Commander

Чота я сомневаюсь что TotalCommander может выполнять скрипт на bash. Или у вас какой-то специальный TotalCommander?

V1
На сайте с 12.07.2013
Offline
44
#9
siv1987:
Чота я сомневаюсь что TotalCommander может выполнять скрипт на bash. Или у вас какой-то специальный TotalCommander?

Добавить скрипт в виде плагина и вывести кнопку на панель Total Commander, так не получится? Попробую тогда через Cygwin.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий