perl - script is reading only last line of an input file -


मेरे इनपुट फ़ाइल में मान (list_muni_nav.txt)। प्रत्येक पंक्ति एक फ़ाइल, यहाँ 'परीक्षण' और 'test2' फ़ाइल नाम हैं के लिए एक रास्ता है।

  / iwmnt / डिफ़ॉल्ट / मुख्य / सामग्री / Munic / workarea / कार्य / templatedata / muni_site / मेरा पर्ल स्क्रिप्ट (नीचे) प्रत्येक को पढ़ना चाहिए I / O इनपुट फ़ाइल में पंक्ति और उन्हें निष्पादित करें। लेकिन, पिछली पंक्ति को छोड़कर लाइनों के बाकी स्क्रिप्ट को स्क्रिप्ट द्वारा नहीं रखा जा रहा है। कृपया परिणाम देखें  
  मेरी $ content_list = '/home/p12/scripts/list_muni_nav.txt'; प्रिंट "\ t ***************** स्टार्ट ********************************************************************** n "; प्रिंट करें \ \ $ फाइल को $ content_list खोलना \ n "; यदि (फ़ाइल खोलें, "$ content_list") {मेरी $ पंक्ति = & lt; FILE & gt ;; chomp ($ लाइन); जबकि ($ पंक्ति नी "") {प्रिंट "\ t ईएएस को $ पंक्ति फ़ाइल करने के लिए आवेदन करना \ n"; मेरी $ setEAVersion = "$ getAttrib-s टीमसाइट / एसोसिएशन / संस्करण = 1 \" $ line \ ""; `$ SetEAVersion`; मेरी $ setEADCRType = "$ getAttrib-s टीमसाइट / Templating / DCR / प्रकार = muni_site / nav \" $ line \ ""; `$ SetEADCRType`; मेरी $ setEAFormValid = "$ getAttrib- के iw_form_valid = सच \" $ पंक्ति \ ""; `$ SetEAFormValid`; प्रिंट "\ t ईएएस $ लाइन पर सफलतापूर्वक लागू \ n"; प्रिंट "\ t ************************************************************************************************ ************ \ n "; $ पंक्ति = & lt; FILE & gt ;; chomp ($ लाइन); }   

RESULT: <प्री> *************** ******************* उद्घाटन दायर करने के लिए / iwmnt / डिफ़ॉल्ट / ईएएस लागू करने /home/pbiswa01/scripts/list_muni_security.txt फ़ाइल मुख्य / सामग्री / Munic / workarea / कार्य / templatedata / muni_site / सुरक्षा / डेटा / परीक्षण त्रुटि: 02,005: त्रुटि ढूंढने / iwmnt / डिफ़ॉल्ट / मुख्य / सामग्री / Munic / workarea / कार्य / templatedata / muni_site / सुरक्षा / डेटा / परीक्षण त्रुटि: 02,005: त्रुटि ढूंढने / iwmnt / डिफ़ॉल्ट / मुख्य / सामग्री / Munic / workarea / कार्य / templatedata / muni_site / सुरक्षा / डेटा / परीक्षण त्रुटि: 02,005: त्रुटि ढूंढने / iwmnt / डिफ़ॉल्ट / मुख्य / सामग्री / Munic / workarea / कार्य / templatedata / muni_site / सुरक्षा / डेटा / परीक्षण ईएएस / iwmnt / default / main / content / munic / WORKAREA / work / templatedata / muni_site / security / data / test को सफलतापूर्वक लागू करें ************************************************************************** **************************************************************************************************************** I कार्यकर्ता / कार्य / templatedata / muni_site / security / data / test2 ईएएस को सफलतापूर्वक / iwmnt / default / main / content / munic / WORKAREA / work / templatedata / muni_ पर लागू किया गया है साइट / सुरक्षा / डेटा / परीक्षा 2 ********************************************************************************************* *************************** कृपया मदद करो। धन्यवाद! !!

मुझे लगता है कि @ स्टार्क सही है, आपकी समस्या नए अक्षरों के साथ है विशेष चर $ / से संबंधित किसी पिछली स्ट्रिंग को निकाल देगा, जो कि विंडोज और लिनक्स पर अलग है इसके बजाय आप एक रैगेक्स का उपयोग कर इस समस्या को प्राप्त कर सकते हैं:

  मेरी $ content_list = '/home/p12/scripts/list_muni_nav.txt'; प्रिंट "\ t ***************** स्टार्ट ********************************************************************** n "; प्रिंट करें \ \ $ फाइल को $ content_list खोलना \ n "; अगर ($ $ my $ line = & lt; $ fh & gt;) {$ line = ~ s / \ s + $ //;} ($ $ खोलें, "& lt;", "$ content_list") प्रिंट करें \ t $ पंक्ति फ़ाइल करने के लिए ईएएस लागू करना \ n "; मेरी $ setEAVersion = "$ getAttrib-s टीमसाइट / एसोसिएशन / संस्करण = 1 \" $ line \ ""; `$ SetEAVersion`; मेरी $ setEADCRType = "$ getAttrib-s टीमसाइट / Templating / DCR / प्रकार = muni_site / nav \" $ line \ ""; `$ SetEADCRType`; मेरी $ setEAFormValid = "$ getAttrib- के iw_form_valid = सच \" $ पंक्ति \ ""; `$ SetEAFormValid`; प्रिंट "\ t ईएएस $ लाइन पर सफलतापूर्वक लागू \ n"; प्रिंट "\ t ************************************************************************************************ ************ \ n "; }   

s / \ s + $ // regex पंक्ति के अंत से सभी रिक्त स्थान को निकाल देता है।

एक बोनस के रूप में, मैंने आपका खुला बदल दिया है, ताकि यह तीन तर्क संस्करण का उपयोग कर सके और मैंने कोड पुनरावृत्ति से बचने के लिए अपना जबकि पाश को बदल दिया।

Comments

Popular posts from this blog

asp.net - Procedure or function "Procedure name" expects a parameter "Param name" which was not supplied occurs rarely -

c# - The item with identity 'Id' already exists in the metadata collection. Parameter name: item -

c++ - Redefined variable in the other module -