मेरे पास एक टेक्स्ट फ़ाइल है जिसमें बहुत लंबी लाइनें हैं। मुझे प्रत्येक पंक्ति से जानकारी का एक टुकड़ा चाहिए, और अद्वितीय मूल्यों को देखने की आवश्यकता है। मेरा मूल विचार चयन-स्ट्रिंग का उपयोग करना था और एक कैप्चर समूह के साथ नियमित अभिव्यक्ति निर्दिष्ट करना था। मैंने कई अन्य पदों पर ध्यान दिया है लेकिन कोई भी काम नहीं किया है। यहां त्वरित और गंदे सी # समतुल्य है:grep के लिए चयन-स्ट्रिंग लेकिन केवल अद्वितीय समूह लौटें
var text = File.ReadAllText(@"path\File.txt");
var r = new Regex("Path=\"(.*?)\"");
var matches = r.Matches(text);
var h = new HashSet<string>();
foreach(Match match in matches)
{
h.Add(match.Groups[1].Value);
}
foreach (var s in h)
{
Console.WriteLine(s);
}
मैं PowerShell में यह कैसे कर सकता हूं?
अद्यतन:
जवाब का परीक्षण, मुझे एहसास हुआ वहाँ एक अतिरिक्त आवश्यकता नहीं है। प्रति स्रोत लाइन के कई मिलान हो सकते हैं। उदाहरण:
Path="One" Path="Two" Path="Two" Path="Three"
परिणाम होना चाहिए:
One Two Three
कृपया ऊपर दिए गए अपडेट को देखें। साथ ही, ध्यान दें कि पाठ एक फ़ाइल से आता है। – TrueWill
नई आवश्यकताओं के लिए अपडेट किया गया। – mjolinor
यह अद्वितीय-अद्वितीय के अलावा काम करता है। अगर मैंने इसे चुनिंदा ऑब्जेक्ट के साथ बदल दिया- यूनिक ने पूरी तरह से काम किया। व्यक्तिगत रूप से मुझे '[regex]' उत्तरों की तुलना में यह स्पष्ट लगता है। – TrueWill