我有一个带有10k +行的制表符分隔文件。我需要将第一个(标题)记录的特定字段更改为特定值。 我正在使用以下脚本,但它会混淆格式。
$contents = Get-Content $PATH -Delimiter "`t"
$contents[1] = 'Replaced Text'
$contents | Out-File $PATH
我可以看到格式会搞乱,但我不确定如何保持文件完全不变,只是改变我需要的东西。 另外,我想知道是否有一种有效的方法..因为我只关心文件的第一行。
我尝试了一种不同的方法,它运作良好" ok"但在每行之后引入额外的空白行:
$content = Get-Content $PATH -Delimiter "`n"
$content |
ForEach-Object {
if ($_.ReadCount -le 1) {
$_ -replace 'A','B'
} else {
$_
}
} |
Set-Content $PATH
答案 0 :(得分:0)
一个选项:
/categories/9/products?intersect=/companies/9
在脚本块上使用。SELECT ... JOIN ... WHERE
会导致$content = {Get-Content $PATH}.Invoke()
$content[0].Replace('A','B') | Set-Content $PATH
$content.RemoveAt(0)
$content | Add-Content $PATH
返回集合而不是数组,这样可以简化删除第一个元素。