使用Powershell替换制表符分隔文件的第一行中的文本

时间:2015-10-02 21:50:14

标签: powershell

我有一个带有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

1 个答案:

答案 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 返回集合而不是数组,这样可以简化删除第一个元素。