मुझे यह हल करें:पावरहेल: स्ट्रिंग्स की एक सरणी द्वारा फ़ाइल की सामग्री फ़िल्टर करें
मेरे पास डेटा की एक टेक्स्ट फ़ाइल है। मैं इसे पढ़ना चाहता हूं, और केवल आउटपुट लाइनें जिनमें कोई भी स्ट्रिंग है जो खोज शब्दों की सरणी में पाई जाती है।
अगर मैं सिर्फ एक स्ट्रिंग देख रहे थे, मैं कुछ इस तरह करना होगा:
get-content afile | where { $_.Contains("TextI'mLookingFor") } | out-file FilteredContent.txt
अब, मैं सिर्फ "TextI'mLookingFor" के लिए की जरूरत तार की एक सरणी, जहां $ अगर _ शामिल होने के लिए सरणी में कोई स्ट्रिंग, यह पाइप को आउट-फाइल में पास कर दिया जाता है।
मैं कैसे करूँ होता है कि (और BTW, मैं एसी # प्रोग्रामर इस powershell स्क्रिप्ट हैकिंग हूँ, इसलिए अगर वहाँ में .Contains(), सुराग मुझे का उपयोग करने से ऊपर मेरी मैच करने के लिए! एक बेहतर तरीका है)
स्ट्रिंग का चयन शायद एक बेहतर विकल्प, विशेष रूप से फ़ाइल डेटा के लिए है। – mjolinor
बस एक त्वरित परीक्षण चलाया, और -मैच बड़ी संख्या में प्रतिनिधि के लिए बेहतर काम करता है (चयन-स्ट्रिंग से लगभग 15x तेज)। – mjolinor
regex विविधता +1 के लिए धन्यवाद। मैंने सादगी के कारण चयन-स्ट्रिंग प्रतिक्रिया का जवाब दिया। – JMarsch