string - एकाधिक फ़ाइलों में स्ट्रिंग को कैसे खोजें और पावरहेल में फ़ाइलों के नाम वापस कैसे करें?




search text (6)

अपनी सामग्री पाइप करें

Get-ChildItem -recurse | Get-Content | Select-String -pattern "dummy"

fl *

आप देखेंगे कि पथ पहले से ही वस्तुओं की संपत्ति के रूप में वापस किया जा रहा है।

यदि आप केवल पथ चाहते हैं, तो डुप्लिकेट को हटाने के लिए select path का select path या select -unique path select path का select path select -unique path :

Get-ChildItem -recurse | Get-Content | Select-String -pattern "dummy" | select -unique path

मैंने कुछ दिन पहले पावरहेल सीखना शुरू कर दिया है, और मुझे Google पर कुछ भी नहीं मिला जो मुझे चाहिए, इसलिए कृपया मेरे प्रश्न के साथ भालू।

मुझे कुछ टेक्स्ट स्ट्रिंग्स को विंडोज़ पर चलने वाले जेबॉस एप्लिकेशन में बदलने के लिए कहा गया है। मुझे जरूरी संभावित लक्ष्य फ़ाइलों का विस्तार नहीं पता है और मुझे उनके स्थान को भी नहीं पता है। अब तक मैंने निर्देशिका में पुनः get-ChildItem -recurse करने में कामयाब रहा है ( get-ChildItem -recurse ) और स्ट्रिंग को ढूंढें जिसे मैं ढूंढ-सामग्री और चयन-स्ट्रिंग के साथ ढूंढ रहा था:

Get-ChildItem -recurse | Get-Content | Select-String -pattern "dummy"

समस्या यह है कि, मैं जिस पाठ को ढूंढ रहा हूं, उसके अवसरों को देख सकता हूं, लेकिन मुझे नहीं पता कि पीएस को पथ और प्रत्येक मेल खाने वाली फाइलों के नाम को वापस करने के लिए कैसे कहा जाए।

मैं उन फ़ाइलों का नाम और स्थान कैसे प्राप्त कर सकता हूं जिनमें अभिव्यक्ति है जिसे मैं ढूंढ रहा हूं?


इस तरह मैं इसे करूँगा, आपको सामग्री प्राप्त करने की आवश्यकता नहीं है:

ls -r | Select-String dummy | select line,path

या

ls -r | Select-String dummy | fl

यह देखने के लिए कि विभिन्न गुण क्या हैं ...


यदि आप एक निर्देशिका में खोज करते हैं, तो आप इसे कर सकते हैं:

select-string -Path "c:\temp\*.*" -Pattern "result"  -List | select Path

यह उन फ़ाइलों का स्थान देना चाहिए जिनमें आपका पैटर्न शामिल है:

Get-ChildItem -recurse | Select-String -pattern "dummy" | group path | select name

यह पथ, फ़ाइल नाम और सामग्री लाइन को प्रदर्शित करेगा जो पैटर्न से मेल खाता है।

Get-ChildItem -Path d:\applications\*config -recurse |  Select-String -Pattern "dummy" 

यहां कई प्रकार के सटीक उत्तर हैं, लेकिन यहां कई अलग-अलग विविधताओं के लिए सबसे संक्षिप्त कोड है। प्रत्येक भिन्नता के लिए, शीर्ष पंक्ति पूर्ण वाक्यविन्यास दिखाती है और नीचे terse वाक्यविन्यास दिखाता है।

मद (2) जॉन जेड और मैनोजल्ड के उत्तरों का एक संक्षिप्त संक्षिप्त रूप है, जबकि आइटम (1) विकस 368 और buygrush के उत्तरों के बराबर है।

  1. पैटर्न युक्त सभी फाइलों के लिए FileInfo ऑब्जेक्ट्स सूचीबद्ध करें:

    Get-ChildItem -Recurse filespec | Where-Object { Select-String pattern $_ -Quiet }
    ls -r filespec | ? { sls pattern $_ -q }
    
  2. पैटर्न वाली सभी फाइलों के लिए फ़ाइल नाम सूचीबद्ध करें:

    Get-ChildItem -Recurse filespec | Select-String pattern | Select-Object -Unique Path
    ls -r filespec | sls pattern | select -u Path
    
  3. सभी फाइलों के लिए FileInfo ऑब्जेक्ट्स को सूचीबद्ध करें जिसमें पैटर्न नहीं है :

    Get-ChildItem -Recurse filespec | Where-Object { !(Select-String pattern $_ -Quiet) }
    ls -r filespec | ? { !(sls pattern $_ -q) }
    
  4. सभी फाइलों के लिए फ़ाइल नाम सूचीबद्ध करें जिसमें पैटर्न नहीं है :

    (Get-ChildItem -Recurse filespec | Where-Object { !(Select-String pattern $_ -Quiet) }).FullName
    (ls -r filespec | ? { !(sls pattern $_ -q) }).FullName
    







recursion