2011-01-06 7 views
0

Я использую файл Unix.sh, и в файле у меня есть регулярное выражение, которое имеет переменную, которая должна быть увеличена каждый раз. Счетчик равен 1. Каждый раз, когда он должен увеличиваться. stringA = echo $stringA | sed "s/[A-Za-z]\{3\},[0-9]*/$count++,&,/g"Автоматическое увеличение переменной в regex

Так что мой вывод должен быть чем-то вроде

prgm([(1,ABC,1,),(2,XYZ,1,),(3,PQR,1,)]),....

но то, что я получаю

prgm([(0++,ABC,1,),(0++,XYZ,1,),(0++,PQR,1,)]),....

+0

Какой язык или редактор вы используете? – Phrogz

+0

Я использую perl – javanerd

ответ

0

Не с sed. Go использовать что-то современное:

perl -pe 's/[A-Z]{3},\d*/$count++.",$&,"/egi' 
2

Регулярные выражения для сопоставления строк. Они не предназначены для манипулирования переменными по мере совпадения.

Вы не говорите, какой язык вы используете, но я предлагаю вам найти способ вернуть все совпадения в данной строке. После этого вы можете перебирать список и вставлять значение для счетчика.

Смежные вопросы