Qualcuno può suggerire un modo elegante per raggiungere questo obiettivo?
Ingresso:
test instant ()
test instant ()
...
test instant () //total 1000 lines
l'output dovrebbe essere:
test instant1 ()
test instant2 ()
test instant1000()
Le righe vuote sono nei miei file di input e ci sono molti file nella stessa directory che devo elaborare contemporaneamente.
Ho provato questo per sostituire molti file nella stessa directory e non ha funzionato.
for file in ./*; do perl -i -000pe 's/instance$& . ++$n/ge' "$file"; done
errori:
Substitution replacement not terminated at -e line 1.
Substitution replacement not terminated at -e line 1.
e ho anche provato questo:
perl -i -pe 's/instant/$& . ++$n/ge' *.vs
Funzionava ma l'indice continuava a incrementare da un file all'altro. Vorrei ripristinarlo a 1 quando si cambia in un nuovo file. Qualche buon suggerimento?
find . -type f -exec perl -pi -e 's/instant/$& . ++$n{$ARGV}/ge' {} +
funziona ma ha sostituito tutti gli altri file non dovrebbe essere sostituito. Preferisco solo sostituire i file con *.txt
.
test instant ()
?