लूप मैं बस एक लॉगफ़ाइल में पढ़ा करना चाहते हैं, कोई खोज करते हैं और बदल सकते हैं और फिर उसी लॉगफ़ाइल में परिवर्तन लिखें।पर्ल: एक फ़ाइल के माध्यम से और स्थानापन्न
पर्ल में ऐसा करने का सबसे अच्छा अभ्यास तरीका क्या है?
लूप मैं बस एक लॉगफ़ाइल में पढ़ा करना चाहते हैं, कोई खोज करते हैं और बदल सकते हैं और फिर उसी लॉगफ़ाइल में परिवर्तन लिखें।पर्ल: एक फ़ाइल के माध्यम से और स्थानापन्न
पर्ल में ऐसा करने का सबसे अच्छा अभ्यास तरीका क्या है?
मैं सामान्य रूप से इस के लिए एक एक लाइनर ऊपर कोड डाल दें:
perl -i -pe 's/some/thing/' log.file
देखें Here
इस बार एक एक लाइनर के साथ किया जाता है:
perl -pi.bak -e "s/find/replace/g" <file>
नोट -i.bak
भाग - यह एक्सटेंशन .bak
के साथ एक बैकअप फ़ाइल बनाता है। यदि आप एक शुद्ध बिना खेलने के लिए चाहते हैं, तो आप एक बैकअप के बिना मौजूदा फ़ाइल को अधिलेखित करने के लिए ऐसा कर सकते हैं:
perl -pi -e "s/find/replace/g" <file>
या आप sed
उपयोग कर सकते हैं (मुझे पता है ... आप पर्ल के बारे में पूछा):
sed -i 's/find/replace/g' <file>
जिस तरह से sed नियमित रूप से अभिव्यक्ति नियमों को नियंत्रित करता है ... कम से कम कहने के लिए पर्ल की तुलना में अलग है। – GJTorikian
लेकिन मैं बैकफेरेंस का उपयोग क्यों नहीं कर सकता? जैसा पर्ल -pi -e "s/foo (। *) बार/बार $ 1foo /" tezt2 काम नहीं करता है .. –
आपका खोल शायद स्ट्रिंग को भ्रष्ट कर रहा है। अपने "एस को" के साथ बदलने का प्रयास करें ताकि * विस्तारित न हो। –
धन्यवाद कि यह किया था! –