将标头添加到输出

时间:2017-09-26 10:38:09

标签: powershell

我有这样的文件;

vserver      volume            snapshot-policy
------------ ----------------- ---------------
vs1          vol1              default
vs1          vol2              daily
vs2          logs              none
vs2          home              hourly

我的命令get-content my_file |? {$_ -match "none"}返回一条记录,没关系。但我想在输出中添加标题。如何格式化输出以添加如下所示的标题?

vserver      volume            snapshot-policy
------------ ----------------- ---------------
vs2          logs              none

2 个答案:

答案 0 :(得分:0)

您可以使用Select-Object cmdlet从集合中获取指定数量的结果。在这种情况下,我们可以使用它返回文件的前两行,如下所示:

$file = get-content my_file
$header = $file | select -first 2

我们还可以使用它来使用-Skip

从搜索中排除标题
$content = $file | select -skip 2

然后您可以按如下方式使用它:

$result = $content |? {$_ -match "none"}

if ($result) {
    $header
    $result
}

答案 1 :(得分:0)

试试这个:

Get-Content "c:\temp\test.txt" | select -skip 2 | %{$_ -replace '  +',";"} | 
ConvertFrom-csv -Delimiter ';' -Header vserver, volume, snapshotpolicy | where snapshotpolicy -EQ "none"