[identity profile] xfreme.livejournal.com posting in [community profile] useful_faq
Товарищи, помогите с заменой текста, плиз

У меня есть:
1.jar
1.jar
1.jar
1.jar

Я хочу иметь: 
1.jar
2.jar
3.jar
4.jar

Я так понял нужен редактор с поддержой регулярных выражений ( имеется ) и само рег выражение.

По идее если я напишу (1).jar и заменить на $1(потом инкремент).jar
то получу 10.jar, 11.jar - так тоже сойдет

ну, или просто заменить на (инремент).jar

как это можно сделать ? :) 

Юзфул по работе очень очень не люблю ручной манкей труд

Re: например

Date: 2009-06-04 07:20 am (UTC)
From: [identity profile] krolchatina.livejournal.com
если вы это под юникс-подобной системой запускаете, то, может быть, $i развернулось в переменную окружения. Можно попробовать одинарные кавчки:

perl -ne 'BEGIN {$i=1} s/(\d+)\.jar/$i.jar/gi;print;$i++' file.txt


Ну или, если уж все равно перл поствили, попробуйте так:
скрипт вида
$i=1;

while(){
  $i++ while(s/1\.jar/$i.jar/i);
  print;
}

ну и запуск как perl script.pl < file.in > file.out

Re: например

Date: 2009-06-04 07:44 am (UTC)
From: [identity profile] krolchatina.livejournal.com
видимо, 236-я строка )
попробуйте, все же, второй скрипт - он поприличнее чуть.

Re: например

Date: 2009-06-04 08:03 am (UTC)
From: [identity profile] krolchatina.livejournal.com
чертова жежешка похерила <STDIN> посчитав его тегом
должно быть так:
$i=1;

while(<STDIN>){
  $i++ while(s/1\.jar/$i.jar/i);
  print;
}