के बाद मुझे अपने प्रतिस्थापन टेक्स्ट में बैकरेफर के साथ परेशानी हो रही है जिसके बाद एक शाब्दिक है। मैं निम्नलिखित की कोशिश की है:प्रतिलिपि में, प्रतिस्थापन पाठ में बैकरेफर, संख्यात्मक शाब्दिक
perl -0pi -e "s/(<tag1>foo<\/tag1>\n\s*<tag2>)[^\n]*(<\/tag2>)/\1${varWithLeadingNumber}\2/" file.xml
perl -0pi -e "s/(<tag1>foo<\/tag1>\n\s*<tag2>)[^\n]*(<\/tag2>)/\g{1}${varWithLeadingNumber}\g{2}/" file.xml
निश्चित रूप से पहले समस्याओं का कारण बनता है क्योंकि $ {varWithLeadingNumber} एक संख्या के साथ शुरू होता है, लेकिन मैं अपने दूसरे प्रयास में \g{1}
निर्माण सोचा ऊपर इस समस्या को हल करने वाला था। मैं perl 5.12.4 का उपयोग कर रहा हूँ।
क्या आप वाकई अपनी समस्या खोल के साथ नहीं हैं? मैं स्क्रिप्ट चर एकत्रित करने के हिस्से को छोड़कर, एकल उद्धरणों में स्क्रिप्ट को संलग्न करता हूं, बस चिंता करने के लिए बैकस्लाश की संख्या को कम करने के लिए। –
मैंने अभी कोशिश की, उदाहरण के लिए, 'perl -0pi -e'/( foo <\/tag1> \ n \ s * ) [^ \ n] * (<\/tag2>)/\ g {1} 25 \ g {2}/'file.xml', और परिणाम वही था। प्रतिस्थापन पाठ 'जी {1} 25 जी {2} 'होने के समाप्त होता है। –
jonderry