Split a file between two specific values and put it in a array in perl -
नमूना फ़ाइल:
### वर्तमान जीपीएस निर्देशांक ### बस में .. ।: अज्ञात ### पावर स्रोत ### 2 ### टीपीएम स्थिति ### 0 ### बूट संस्करण ### जीडी35 1.1.0.12 - निर्मित 14:22:56, जुलाई 10 232323 मुझे नीचे की तरह सरणियों में फाइल से ऊपर विभाजित करना है:
@ current0_ps_Coordinates
नीचे जैसा होना चाहिए
### वर्तमान जीपीएस निर्देशांक ### बस में ...: अज्ञात
मुझे पर्ल में कोई मदद करना है? (वर्तमान कार्यक्रम टिप्पणी से जोड़ा गया है)
#! / Usr / local / lib / perl / 5.14.2 -w मेरे @ लाइनें; मेरी $ फ़ाइल; मेरी लाइनें; मेरी $ i; #chomp $ i; $ File = 'test.txt'; # फाइल खोलें नाम (INFO, $ file); # फ़ाइल को @lines = & lt; INFO & gt;; खोलें; # इसे सरणी बंद (INFO) में पढ़ें; # फ़ाइल को अपने $ लाइन (@ लाइनों) को बंद करें {प्रिंट "$ line"; }
रेखा से फ़ाइल लाइन पढ़ें पिछली नई लाइनों को हटाने के लिए chomp का उपयोग करें
यदि इनपुट लाइन इस regexp / ^ ### (। *) ### /
से मेल खाती है, तो आपके पास "सरणी" का नाम है $ 1 में
इन मैचों से @ चालू0_PS_Coordinates जैसे नामित चर बनाना संभव है।
लेकिन यह हैश कुंजी के रूप में उनका उपयोग करना बेहतर है और फिर डेटा को एक हैश में संग्रहीत करना है जिसमें सरणियां हैं जैसा कि यह मान है
तो $ $ को "$ अंतिम मैच" में मैच से डाल कर एक खाली सरणी को एक हैश जैसे $ items {$ lastmatch} = []
अब के लिए और कुछ और पढ़ें
यदि इनपुट लाइन ऊपर दिए गए "सरणी के नाम" regexp से मेल नहीं खाती है और यदि यह खाली नहीं है तो हम मानते हैं कि यह पिछले मिलान के लिए एक मान है। इसलिए इसे मौजूदा सरणी में भरवां जा सकता है जैसे कि push $ $ items {$ lastmatch}, $ line
एक बार जब आप यह कर लें तो सभी डेटा उपलब्ध होगा % Items hash
अधिक जानकारी के लिए perldata, perlre, perldsc और perllol दस्तावेज़ीकरण पृष्ठ देखें
Comments
Post a Comment