想用powershell写一个按行数分割文本的脚本。
于是用以下代码生成300000行的txt,耗时80秒!复制代码 用以下代码按行数(15000行)来分割30w.txt成20个小文本,耗时0.7秒!- $txt="30w.txt"
- $lines=15000
- $name=(dir $txt).basename
- $ext=(dir $txt).extension
- $sn=$begin=0
- $filecontent=gc $txt -readcount 0
- do{
- $lend=$lbegin+$lines-1
- $cut=$filecontent[$lbegin..$lend]
- $sn++
- $fname="{0}{1}{2:d3}{3}" -f $name,"_",$sn,$ext
- sc -value $cut $fname
- clv cut
- $lbegin+=$lines
- }until($lbegin -ge $filecontent.length)
- write-host "$txt 切分完毕"
- write-host "共$sn 个文本"
- #$null=[console]::readkey()
复制代码 不能理解,为啥两者用时会相差这么远
另,有更好的方法来生成或者分割这样的大文本吗?谢谢。 |