【发布时间】:2016-11-05 01:26:25
【问题描述】:
我有一个包含 n 条记录的文本文件,每条记录包含由制表符分隔的两列。我正在阅读这个文本文件并使用 Powershell 脚本在第二列上执行一些映射。我能够执行读取文本文件并能够执行映射。但是当我使用 set-content 命令编写结果时,我得到了以下结果。
输入文件:
4803 6000000
4802 6000000
4803 6000000
4803 5000000
输出文件:
@{Column1=4803;列2=5000000;}
@{Column1=4802;列2=6000000;}
@{Column1=4803;列2=5000000;}
@{Column1=4803;列2=5000000;}
我不知道为什么我在每条记录中都得到了列名。我不想看到这样的结果 @{Column1=4803;列 2=5000000;} 。但它应该是这样的 - 4803 5000000。请你帮我删除输出文件中的特殊字符和列名。
预期结果:
4803 5000000
4802 6000000
4803 5000000
4803 5000000
脚本:
$fields = Get-Content Temp.txt
$results = @()
foreach($i in $fields)
{
$field = $i -split '\t' -replace '^\s*|\s*$'
$field1 = $field[0]
$field2 = $field[1]
if ($field1 -eq "4803" -and $field[2].substring(0,2) -eq "60")
{
$field2 = "5000000"
}
else
{
$field2 = $field[1]
}
$details = @{
Column1 = $field1
Column2 = $field2
}
$results += New-Object PSObject -Property $details
}
$results | Select-Object Column1, Column2 | Set-Content -path Temp.txt [Environment]::Exit(0)
【问题讨论】:
标签: powershell