Может кто-нибудь предложить элегантный способ сделать это?
Входные данные:
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 ()
?