Если вы хотите удалить начальную строку из файла,
вы можете прочитать содержимое как текст и пропустить первую строку до ConvertFrom-Csv
Get-Content 'C:\Users\PDC_AVERE_SWAP_OP.txt' | Select-Object -Skip 1|
ConvertFrom-Csv -Delimiter "`t" -Header Name,Total,used,free |
Export-Csv csvfile.csv -NoTypeInformation
На всякий случай, если нет вкладки, нопробел (ы), как в примере выше, вы можете использовать
$Data = Get-Content '.\PDC_AVERE_SWAP_OP.txt' |Select-Object -skip 1| ForEach-Object{
$Name,$Total,$used,$free = ($_ -split('\s+'))[0,1,3,5]
[PSCustomObject]@{
Name = $Name
Total= $Total
used = $used
free = $free
}
}
$Data
$Data | Export-Csv '.\PDC_AVERE_SWAP_OP.csv' -NoTypeInformation
$Data | Export-Excel '.\PDC_AVERE_SWAP_OP.xlsx' -AutoSize -Show
и тем самым убрать метку из каждого значения:
Name Total used free
---- ----- ---- ----
NVA-0055-Prod-N08:Swap: 48G 1428K 48G
NVA-0055-Prod-N01:Swap: 48G 332K 48G
NVA-0055-Prod-N04:Swap: 48G 169M 48G
NVA-0055-Prod-N05:Swap: 48G 884K 48G
NVA-0055-Prod-N02:Swap: 48G 4236K 48G
NVA-0055-Prod-N06:Swap: 48G 132K 48G
NVA-0055-Prod-N07:Swap: 48G 92K 48G
NVA-0055-Prod-N03:Swap: 48G 712K 48G
При использовании Export-Excel вы непосредственно получите файл xlsx
![enter image description here](https://i.stack.imgur.com/LXtpC.png)
РЕДАКТИРОВАТЬ: как уже упоминалось в комментарии здесь вариант с использованием RegEx для разделения элементов См. RegEx live https://regex101.com/r/GFXpXw/1 с отсутствующим используемым значением
## Q:\Test\2018\11\15\SO_53322626_2.ps1
$RE = "^(?<Name>[^ ]+) (?<Total>\d+[KMG]) Total(, (?<used>\d+[KMG]) Used)?, (?<free>\d+[KMG])"
$Data = Get-Content '.\PDC_AVERE_SWAP_OP.txt' |Select-Object -skip 1| ForEach-Object{
if ($_ -match $RE){
[PSCustomObject]@{
Name = $Matches.Name
Total= $Matches.Total
used = $Matches.used
free = $Matches.free
}
} else {Write-Host ("{0} didn't match RegEx" -f $_)}
}
$Data
$Data | Export-Csv '.\PDC_AVERE_SWAP_OP.csv' -NoTypeInformation
#$Data | Export-Excel '.\PDC_AVERE_SWAP_OP.xlsx' -AutoSize