在PowerShell中检查每行的第一个字符是否有特定值

时间:2014-04-09 15:49:41

标签: powershell char character

我正在阅读包含特定格式数字的文本文件。我想弄清楚该行的第一个字符是6还是4,并将整行存储在一个数组中以供日后使用。因此,如果该行以6开头,则将整行添加到sixArray中,如果该行以4开头,则将整行添加到fourArray中。

如何检查第一个字符,然后抓取该行的剩余X字符?没有替换任何数据?

4 个答案:

答案 0 :(得分:9)

这样的事可能会奏效。

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

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

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

答案 1 :(得分:4)

如果您正在运行V4:

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

答案 2 :(得分:3)

使用:

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

答案 3 :(得分:0)

如果是我,我只会使用正则表达式。

这样的模式将抓住你需要的一切。

`'^[4|6](?<Stuff>.*)$'`