Есть файл видаКоммутатор ABC - Порт 1 - Сеть SECURITY
SOMETEXT
Коммутатор ABC - Порт 2 - Сеть SECURITY
SOMETEXTНужно "Порт N" увеличить на 40
Sed так не умеет, perl не ловит русские буквы. Подскажите решение задачи
#!/usr/bin/perluse utf8;
use open IN => ':encoding(utf8)';open(FF, "list.txt");
while(<FF>) {
s/(?<=Порт )([0-9][0-9]?)/$1+40/ge;
print;
}
> Есть файл вида
> Коммутатор ABC - Порт 1 - Сеть SECURITY
> SOMETEXT
> Коммутатор ABC - Порт 2 - Сеть SECURITY
> SOMETEXT
> Нужно "Порт N" увеличить на 40
> Sed так не умеет, perl не ловит русские буквы. Подскажите решение задачии перл и сед может. для начала сойдет awk & shell
>> Есть файл вида
>> Коммутатор ABC - Порт 1 - Сеть SECURITY
>> SOMETEXT
>> Коммутатор ABC - Порт 2 - Сеть SECURITY
>> SOMETEXT
>> Нужно "Порт N" увеличить на 40
>> Sed так не умеет, perl не ловит русские буквы. Подскажите решение задачи
> и перл и сед может. для начала сойдет awk & shellкак, например, awk&shell и sed? С перлом-то худо-бедно разобрался (см. выше)
> как, например, awk&shell и$ echo "Коммутатор ABC - Порт 2 - Сеть SECURITY"|awk '$4=="Порт"{$5+=40}{print}'
Коммутатор ABC - Порт 42 - Сеть SECURITY
$ _