Solved

Parse Text

Posted on 2011-03-17
5
348 Views
Last Modified: 2012-05-11
I need to recursively parse all files in a folder and return the values that are present to the right of the text found within.

The text within is always the same:

ram Files\Queue\textfile.txt

I need to get a result set containing the:

file name searched
textfile.txt values within each found file

Thanks!
0
Comment
Question by:CodexK2
  • 2
  • 2
5 Comments
 
LVL 13

Expert Comment

by:soostibi
ID: 35160412
Could you describe your problem more precisely? With some examples.
0
 
LVL 13

Expert Comment

by:Felix Leven
ID: 35161234
find different filetypes example:
Get-ChildItem C:\PSTest\ -Recurse -include *.txt, *.exe, *.ini

Read file:
get-content textfile.txt
0
 

Author Comment

by:CodexK2
ID: 35162856
Thank you - I know how to recursively look for files within a folder (and search for strings within these files).

What I need help with is searching within each and every file within a given folder for this text:

Files\Queue\textfile.txt

...and then only returning the value found to the right of 'Files\Queue'

So...in the example above the value returned would be:

'textfile.txt'

Ideally the result set will output the name of the file and the values found.


0
 
LVL 13

Accepted Solution

by:
soostibi earned 500 total points
ID: 35163769
Try this. You can adjust the pattaren in the first line and the place of the text files to search in the 3rd line.

This will result in a table like this (it even gives you the line number within the text file):
linenumber filename      patternfound            
---------- --------      ------------            
         1 parsetext.txt textfile1.txt            
         2 parsetext.txt textfile2.txt            
         1 pars2text.txt subfolder\textfilesub.txt

In my example the 3rd match shows, that it gives you the subfolder path. If you do not need that, only the filenname, tell me, I'll adjust the code.
$pattern = "Files\\Queue\\([^\.]+\.txt)"

Get-ChildItem c:\yourpathtotxtfiles -Recurse -Filter *.txt | Select-String -Pattern $pattern | %{
    $filename = $_.filename
    $linenumber = $_.linenumber
    $_.matches | %{
        new-object -TypeName PSObject -Property @{
            filename = $filename
            patternfound = $_.groups[1].value
            linenumber = $linenumber
        }
    }
}

Open in new window

0
 

Author Closing Comment

by:CodexK2
ID: 35172405
Works like a Champ - thank you very much!!
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Windows 10 came with  a lot of built in applications, Some organisations leave them there, some will control them using GPO's. This Article is useful for those who do not want to have any applications in their image (example:me).
The Nano Server Image Builder helps you create a custom Nano Server image and bootable USB media with the aid of a graphical interface. Based on the inputs you provide, it generates images for deployment and creates reusable PowerShell scripts that …
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…
Exchange organizations may use the Journaling Agent of the Transport Service to archive messages going through Exchange. However, if the Transport Service is integrated with some email content management application (such as an antispam), the admini…

713 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question