我有一个我想要导入的文件。第一列是IDnum,第二列是Name,第三列是Version。我想要的只是IDNum专栏。该文件是制表符分隔的,所以我想知道如何只捕获选项卡之前的第一列?不需要每行的其余文本。这条线看起来像这样:
4809490 WebGoat 5.0
所以在这个例子中,我只想要4809490.我不需要其余的东西。
答案 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)
}
这些都是很好的答案,谢谢!