2016-03-30 6 views
0

Böyle burada görüldüğü gibi "bölünmüş" * NIX komutu, bir PowerShell eşdeğer arıyorum: PREFIXaa, PREFIXab ...Powershell'de "bölünmüş" bir eşdeğer var mı?

isimli dosyalara giriş GİRİŞİ'nin http://www.computerhope.com/unix/usplit.htm

bölünmüş çıkışları sabit boyutlu parçalar

Bu, dizelerdeki gibi .split() öğesini belirtmiyor. Bu, borudan bir BÜYÜK dizi almak ve daha sonra aynı sayıda satıra sahip X dosyalarının her birinde saklanacaktır. Benim kullanım durumunda

, borulu alma içeriği

Get-ChildItem $rootPath -Recurse | select -ExpandProperty FullName | foreach{ $_.Trim()} | {...means of splitting file here...} 
+4

Sıralama engelleyen bir cmdlettir. Boru hattı bellek verimliliğinizi sabote edecek, çünkü boru hattında herhangi bir şey devam etmeden önce tüm girişler orada birikir. – mjolinor

+0

Her dosyayı X küçük dosyalara bölme niyetiniz var mı? Ya da tüm dosyaların içeriğini X küçük dosyalara birleştirmek mi? Yani a.txt, b.txt, c.txt dosyalarının her biri 20 satıra sahiptir, yani toplam 60 satır ... Her biri 12 satırlık 5 dosyaya bölmek veya her dosyayı 5 dosyaya bölmek ve sonuçlandırmak her biri 4 satır olan 15 dosya ile? Ya da sadece yolları almak ve yolların dizisini her biri aynı sayıda satır içeren 5 dosyaya ayırmak mı istiyorsunuz? – TheMadTechnician

+0

Soruyu açıklığa kavuşturdum –

cevap

0

Ben ne istediğini tam olarak yapan bir cmdlet var sanmıyorum ... 1 milyon üzerinde dosyaların listesidir. ama bunu yaparak hızlı bir şekilde yapılandırabilirsiniz.

O How can I split a text file using PowerShell? ait yinelenen bir tür ve google eğer daha komut çözümler bulacaksınız "powershell daha küçük dosyalar halinde bir metin dosyası bölünmüş" İşte

başlayacak kod barış tavsiyem o kadar artar Daha verimli büyük dosyaları işlemek için .NET sınıfı System.IO.StreamReader'u kullanın.

$sourcefilename = "D:\temp\theFiletosplit.txt" 
$desFolderPathSplitFile = "D:\temp\TFTS" 
$maxsize = 2 # The number of lines per file 
$filenumber = 0 
$linecount = 0 

$reader = new-object System.IO.StreamReader($sourcefilename) 

while(($line = $reader.ReadLine()) -ne $null) 
{ 
    Add-Content $desFolderPathSplitFile$filenumber.txt $line 
    $linecount ++ 
    If ($linecount -eq $maxsize) 
    { 
    $filenumber++ 
    $linecount = 0 
    } 
} 
$reader.Close() 
$reader.Dispose()