Я хочу разделить текстовый файл на несколько файлов каждый раз, когда в строке нет разрыва строки / нет текста.
Возможно ли это с помощью PowerShell?
У кого-нибудь есть скрипт для этого?
Это пример данных:
Я хочу разделить текстовый файл на несколько файлов каждый раз, когда в строке нет разрыва строки / нет текста.
Возможно ли это с помощью PowerShell?
У кого-нибудь есть скрипт для этого?
Это пример данных:
Следующий скрипт PowerShell делает именно то, что вам нужно. Каждый раздел сохраняется с тем же именем файла и добавленным инкрементным номером.
## 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)
}
}
Образец вывода:
> gc .\test_1.txt
1 sf
1 s
1 sg
1 sv
1 sgsv
Существуют различные способы быстрого поиска в Интернете с помощью…
Powershell 'разбить файл на перевод строки'
... вернул бы несколько хитов.
Это может быть так же просто, как использовать командлеты New-Item, Get-Children и Add-Content с использованием цикла и условия.
$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