PowerShell在第一个选项卡后删除所有字符

时间:2016-05-18 11:30:42

标签: powershell

我有一个我想要导入的文件。第一列是IDnum,第二列是Name,第三列是Version。我想要的只是IDNum专栏。该文件是制表符分隔的,所以我想知道如何只捕获选项卡之前的第一列?不需要每行的其余文本。这条线看起来像这样:

4809490 WebGoat 5.0

所以在这个例子中,我只想要4809490.我不需要其余的东西。

3 个答案:

答案 0 :(得分:1)

这可以通过Select-String作为单行来完成。

Select-String -Path file.txt -Pattern '^\w+' -AllMatches |%{$_.Matches.Value} > newfile.txt

答案 1 :(得分:0)

您可以将Import-CSV与指定的制表符分隔符一起使用来加载文件并仅选择第一列,也可以使用Get-Content cmdlet加载文件,使用{迭代它{3}}并使用regex提取ID

Get-Content 'PATH_TO_YOUR_FILE' | ForEach-Object { 
    [regex]::Match($_, '\d+').Groups[0].Value 
}

答案 2 :(得分:0)

我坐下来思考它并自己找到了一种方式:)

ForEach ($line in $content) { 
$thisappid = $line.Split("`t")
Write-Host $thisappid.GetValue(0)
}

这些都是很好的答案,谢谢!