在PowerShell中将标头添加到拆分文件中

时间:2019-06-13 09:56:41

标签: powershell

我目前正在使用我在网上找到的PowerShell脚本来分解.txt(制表符分隔)文件,这些文件包含一组标题,然后包含大约一百万行。我希望添加一些内容,这些内容将从第一行中提取标头并将其复制到每个拆分文件中。

我尝试过在线浏览,但是我尝试过的一些解决方案似乎只是创建一堆只包含标题的文件,然后将文件与数据行分开。

$i=0;
Get-Content example.txt -ReadCount 50000 | %{
    $i++;
    $_ | Out-File out_$i.txt
}

2 个答案:

答案 0 :(得分:1)

在循环之前将标头读取到变量中,然后在附加内容之前将其写入输出文件:

$header = Get-Content example.txt -TotalCount 1
Get-Content 'example.txt' -ReadCount 50000 | ForEach-Object {
    $i++
    $header | Set-Content "out_$i.txt"
    $_ | Add-Content "out_$i.txt"
}

答案 1 :(得分:0)

此代码将拆分文件大小,并将已存在的标头添加到以下所有文件中。您可以删除下面的“调试”行。

cls
Add-Type -AssemblyName System.Windows.Forms
$FileBrowser = New-Object System.Windows.Forms.OpenFileDialog
$FileBrowser.ShowDialog()
$file = $FileBrowser.FileName
cls
Write-Host "Opening " $file
$header = Get-Content $file -First 1
Write-Host $header
$i=0; Get-Content $file -ReadCount 500 | %{$i++; if($i-gt 1){$header | Set-Content csvout-$i.csv;} $_ | Add-Content csvout-$i.csv}