Czy ktoś może zasugerować elegancki sposób na osiągnięcie tego?
Wejście:
test instant ()
test instant ()
...
test instant () //total 1000 lines
wyjście powinno być:
test instant1 ()
test instant2 ()
test instant1000()
Puste wiersze znajdują się w moich plikach wejściowych i w tym samym katalogu jest wiele plików, które muszę przetworzyć jednocześnie.
Próbowałem zastąpić wiele plików w tym samym katalogu i nie działałem.
for file in ./*; do perl -i -000pe 's/instance$& . ++$n/ge' "$file"; done
błędy:
Substitution replacement not terminated at -e line 1.
Substitution replacement not terminated at -e line 1.
i próbowałem również:
perl -i -pe 's/instant/$& . ++$n/ge' *.vs
Działało, ale indeks ciągle zwiększał się z jednego pliku do drugiego. Chciałbym zresetować to do 1 po zmianie na nowy plik. Jakieś dobre sugestie?
find . -type f -exec perl -pi -e 's/instant/$& . ++$n{$ARGV}/ge' {} +
działa, ale zastąpił wszystkie inne pliki nie powinny być zastępowane. Wolę po prostu zastąpić pliki *.txt
tylko.
test instant ()
?