Her satır sonunda txt dosyasını birden fazla dosyaya bölme


0

Bir satır sonu / satırda metin yok her seferinde bir txt dosyasını birden fazla dosyaya bölmek istiyorum.

PowerShell kullanarak bu mümkün mü?

Bunun için bir komut dosyası var mı?

Bu verilere bir örnek:

Notepad ekran görüntüsü

Yanıtlar:


0

Aşağıdaki PowerShell betiği tam olarak ihtiyacınız olanı yapar. Her bölüm aynı dosya adı ve ekli bir artış numarası ile kaydedilir.

## Q:\Test\2018\06\27\SU_1334727.ps1
$FileName = '.\test.txt'
If (Test-Path $FileName){
    $File = Get-Item $FileName
    (Get-Content $File.FullName -Raw) -Split "(?<=`r?`n *`r?`n)" |
        ForEach-Object {$i=1}{
            $_ | Set-Content ("{0}_{1}{2}" -f $File.BaseName,$i++,$File.Extension)
        }
}
  • dosya sürekli bir metin parçası olarak okunur ve ardındaki olumlu bir ifadeyi kullanarak tüketmeyen Normal İfade ile bölünür.

Örnek çıktı:

> gc .\test_1.txt
1        sf
1        s
1        sg
1        sv
1        sgsv

0

Bunu yapmanın çeşitli yolları vardır ve web’de hızlı bir arama ...

Powershell 'satır beslemesindeki bir dosyayı böl'

… Birkaç vuruş döndürürdü.

Yeni Öğe, Get-Children ve Add-Content cmdlet'lerini bir döngü ve koşul kullanarak kullanmak kadar basit olabilir.

$Lines = Get-Content 'D:\Scripts\$data.txt'

New-Item -Path 'D:\Scripts' -Name 'FileName.txt' -ItemType File
$FileName = (Get-ChildItem -Path 'D:\Scripts\FileName.txt').FullName

$FileCount = 0

ForEach($Line in $Lines)
{
    If($Line -ne '')
    {
        'Appending line to a file'
        Add-Content -Value $Line -Path $FileName
    }
    Else
    {
        'Empty line encountered - creating new file'
        $FileName = New-Item -Path 'D:\Scripts' `
        -Name (((Get-ChildItem -Path 'D:\Scripts\FileName.txt').BaseName + 
        ($FileCount = $FileCount + 1) + '.txt')) -ItemType File
    }
}
Get-ChildItem -Path 'D:\Scripts\filename*'

# Results

    Directory: D:\Scripts


Mode                LastWriteTime         Length Name                                                                                                                                                                  
----                -------------         ------ ----                                                                                                                                                                  
-a----        27-Jun-18     12:48              0 FileName.txt                                                                                                                                                          
Appending line to a file
Appending line to a file
Appending line to a file
Empty line encountered - creating new file
Appending line to a file
Appending line to a file
Appending line to a file
Empty line encountered - creating new file
Appending line to a file
Appending line to a file
Appending line to a file
-a----        27-Jun-18     12:48             21 FileName.txt                                                                                                                                                          
-a----        27-Jun-18     12:48             21 FileName1.txt                                                                                                                                                         
-a----        27-Jun-18     12:48             21 FileName2.txt   
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.