将具有大量行的文件拆分为固定行的较小文件的最佳方法是什么?

时间:2017-12-03 20:34:16

标签: batch-file

我有几个包含大约50k行的文件。我需要将它们分成每个1k行的较小文件。在Windows平台上执行此操作的最佳方法是什么?。

非常感谢任何投入。

谢谢, 帕。

1 个答案:

答案 0 :(得分:0)

创建一个powershell文件并使用.ps1扩展名保存,并添加以下powershell代码。

$Input = "LARGEFILE.txt"
$outName = "smallerfile"
$extension = "txt"
$Max = 10kb
$inputFile = [io.file]::OpenRead($Input)
$buffers = new-object byte[] $Max
$count = $lump = 0
try {
    do {
           $count = $inputFile.Read($buffers, 0, $buffers.Length)
           if ($count -gt 0) {
           $to = "{0}.{1}.{2}" -f ($outName, $lump, $extension)
           $toFile = [io.file]::OpenWrite($to)
           try {

               $tofile.Write($buffers, 0, $count)
            } finally {
                $tofile.Close()
            }
        }
        $lump ++
    } while ($count -gt 0)
}
finally {
    $inputFile.Close()
}

您需要提供输入文件的完整路径和名称,即大文件。然后给出你想要的输出文件的唯一名称,它将为你存储每个的数字。您还可以调整输出文件的大小。因此,在这种情况下,它会从LARGEFILE.txt创建10kb文件到smallerfile.1.txtsmallerfile.2.txtsmallerfile.3.txt等。

PS !! 您可以通过cmd.exe运行powershell .\scriptname.ps1或使用脚本的完整路径替换.\来运行class A { public: void Show() {} }; class B : public A { public: void BMethod1() { Show(); } }; TEST(BTEST, ShowMethod) { B bobj; auto aobj = FAKE<A>(); bobj.BMethod1(); ASSERT_WAS_CALLED(aobj->Show()); } 中的文件。你也可以直接从powershell运行它。