Question

I am reading in a text file that contains a specific format of numbers. I want to figure out if the first character of the line is a 6 or a 4 and store the entire line in an array for use later. So if the line starts with a six add the entire line into sixArray and if the line starts with a 4 add the entire line into fourArray.

How can I check the first character and then grab the remaining X characters on that line? Without replacing any of the data?

Was it helpful?

Solution

Something like this would probably work.

$sixArray = @()
$fourArray = @()

$file = Get-Content .\ThisFile.txt
$file | foreach { 
    if ($_.StartsWith("6"))
    {
        $sixArray += $_
    }

    elseif($_.StartsWith("4"))
    {
        $fourArray += $_
    }
}

OTHER TIPS

If you're running V4:

$fourArray,$sixArray = 
((get-content $file) -match '^4|6').where({$_.startswith('4')},'Split')

Use:

$Fours = @()
$Sixes = @()
GC $file|%{
    Switch($_){
        {$_.StartsWith("4")}{$Fours+=$_}
        {$_.StartsWith("6")}{$Sixes+=$_}
    }
}

If it's me I'd just use a regex.

A pattern like this will catch everything you need.

`'^[4|6](?<Stuff>.*)$'`
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top