किसी को यह पूरा करने के लिए एक सुंदर तरीका सुझा सकते हैं?
इनपुट:
test instant ()
test instant ()
...
test instant () //total 1000 lines
आउटपुट होना चाहिए:
test instant1 ()
test instant2 ()
test instant1000()
खाली लाइनें मेरे इनपुट फ़ाइलों में हैं और एक ही निर्देशिका के तहत कई फाइलें हैं जिन्हें मुझे एक बार संसाधित करने की आवश्यकता है।
मैंने एक ही dir में कई फाइलों को बदलने की कोशिश की और काम नहीं किया।
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 ()
?