Чи може хтось запропонувати елегантний спосіб досягти цього?
Вхід:
test instant ()
test instant ()
...
test instant () //total 1000 lines
Вихід повинен бути:
test instant1 ()
test instant2 ()
test instant1000()
Порожні рядки є у моїх вхідних файлах, і в одному каталозі є багато файлів, які мені потрібно опрацювати відразу.
Я спробував це замінити багато файлів у тому ж режимі, і нічого не вийшло.
for file in ./*; do perl -i -000pe 's/instance$& . ++$n/ge' "$file"; done
помилки:
Substitution replacement not terminated at -e line 1.
Substitution replacement not terminated at -e line 1.
і я також спробував це:
perl -i -pe 's/instant/$& . ++$n/ge' *.vs
Він працював, але індекс просто збільшувався від одного до іншого файлу. Я хотів би скинути це на 1 при зміні нового файлу. Будь-які хороші пропозиції?
find . -type f -exec perl -pi -e 's/instant/$& . ++$n{$ARGV}/ge' {} +
працює, але він замінив усі інші файли, замінювати їх не слід. Я вважаю за краще просто замінити файли на *.txt
.
test instant ()
?