仅过滤输出

时间:2016-04-02 08:02:30

标签: powershell filter numbers

我有一个文字,例如:

cd123aaq54

我想在另一个文件中只分隔数字,所以我可以

12354

在输出中。

我一直在尝试很多像

这样的命令
Get-Content text.txt | Select-String  -Pattern '[0-9]'

在linux中它更容易,只是

grep -o '[0-9][0-9]*' text >numbers

1 个答案:

答案 0 :(得分:2)

PowerShell中最简单的方法可能是替换所有非数字:

@(Get-Content text.txt) -replace '\D',''

您可以使用Out-FileSet-Content cmdlet将结果输出到文件:

@(Get-Content text.txt) -replace '\D','' |Out-File C:\output.txt

如果文本文件中有许多行,您可能希望利用PowerShell的pipiline特性并将Get-Content的输出直接传递给ForEach-Object并执行-replace操作有:

Get-Content text.txt |ForEach-Object {$_ -replace '\D',''} |Set-Content C:\output.txt