Monster perl regex -
मैं इस तरह तार बदलने की कोशिश कर रहा हूं:
& lt; a href = ' ../Example/case23.html'><img src = 'Blablabla.jpg'
इसे करने के लिए:
& lt; a href = '../Example/case23.html'><img src =' & lt?? Php imgname ('case23'); ? & Gt; '
और मुझे एक नियमित अभिव्यक्ति का यह राक्षस मिला है:
ढूंढें -प्रकार F | Xargs perl -pi -e \ 's / & lt; a href = \' (। \। \। \ / उदाहरण \ /) (case \ d \ d) (। Html। '& Gt; & lt; img src = \ ') * \' / \ 1 \ 2 \ 3 & lt; \? Php imgname \ (\ '\ 2 \'); \? & Gt; \ '/'
लेकिन यह काम नहीं कर रहा है। वास्तव में, मुझे लगता है कि यह बाश के साथ एक समस्या है, जो संभवत: शीघ्रता से नज़रअंदाज़ किया जा सकता है।
r: पंक्ति 4: अनपेक्षित टोकन के पास सिंटैक्स त्रुटि `('r: पंक्ति 4:`' S / & lt; a href = \ '(। \। \। \। / उदाहरण \ /) (केस \ d \ d) (। Html।' 'Gt; & lt; img src = \') * \ '/ 1 \ 2 \ 3 & lt; \? Php imgname \ (\ '\ 2 \'); \? & Gt; \ '/' '
लेकिन अगर आप नियमित रूप से मेरी मदद करना चाहते हैं अभिव्यक्ति जो शांत होगी, भी!
आपको मछली को कैसे पढ़ा:
s / ... / ... /
s
ऑपरेटर के लिए /
के अलावा एक विभाजक का उपयोग करें क्योंकि /
अभिव्यक्ति में पहले से ही होता है।
s {...} {...}
बैकस्लैश पर उद्धृत करें, पसंद करें [ ]
अधिक ।
क्योंकि हम बाद में शेलक्वाट करेंगे। चलो केवल आवश्यक या महत्वपूर्ण भागों के लिए बैकस्लैश रखें, अर्थात् यहां अंक वर्ण वर्ग।
S {& lt; a href = '[।] [।] / उदाहरण / मामले (\ d \ d) [।] Html' & gt; ...
केवल चर भाग को कैप्चर करें। स्ट्रिंग को फिर से इकट्ठा करने की कोई ज़रूरत नहीं है यदि अधिकांश भाग स्थिर है।
s {& lt; a href = '[।] [।] / उदाहरण / मामले (\ d \ d) [ ] Html '& gt; & lt; img src =' [^ '] *'} {& lt; a href = '.. / उदाहरण / मामले $ 1.html' & gt; & lt; img src = '& lt?? Php imgname (' मामले $ 1 '); ? & Gt; '}
बैकरेफरेंस को दर्शाने के लिए
$ 1
के बजाय\ 1
का उपयोग करें[^ '] *
का मतलब अगले'
तक सब कुछ है।अब पर्ल के तर्क के रूप में सेवा करने के लिए
-e
विकल्प, इस कार्यक्रम को बंद करने की आवश्यकता है। निम्न सहायक प्रोग्राम को नियोजित करें, आप इसके बजाय उपनाम या शेल फ़ंक्शन का उपयोग भी कर सकते हैं:& gt; बिल्ली `जो कंकलेट '#! / Usr / bin / env perl स्ट्रिंग :: शेल क्वाट क्यू (शेल_कोट) का उपयोग करते हैं; Undef $ / / प्रिंट शेल_कोट & lt; & gt;
इसे चलाएं और प्रोग्राम बॉडी पेस्ट करें, Ctrl + d के साथ इनपुट समाप्त करें, आपको प्राप्त होता है:
's {& lt; a href =' \ '' [।] [।] / उदाहरण / मामले (\ d \ d) [।] Html '\' '& gt; & lt; img src =' \ ' [^ '\' '] *' \ ''} {& Lt; a href = '\' "../ उदाहरण / मामले $ 1.html '\' '& gt; & lt; img src =' \ '' & lt ;? Php imgname ('\' केस $ 1 '\' '); ? & Gt; '\' '}'
इसे शेल पाइपलाइन के साथ रखें।
ढूंढें -प्रकार F | Xargs perl -pi -e 's {& lt; a href =' \ '' [।] [।] / उदाहरण / मामले (\ d \ d) [।] Html '\' '& gt; & lt; img src =' \ '' [^ '\' '] *' \ ''} {& Lt; a href = '\' "../ उदाहरण / मामले $ 1.html '\' '& gt; & lt; img src =' \ '' & Lt;? Php imgname ('\' केस $ 1 '\' '); ? & Gt; '\' '}'
Comments
Post a Comment