Powershell перемещает строки в файле - PullRequest
2 голосов
/ 20 марта 2020

Это кажется таким простым, что я стесняюсь спросить.

У меня есть файл с неизвестным количеством строк, но не менее 20. Я всегда хочу переместить строки 4-6 в строки 1-3.

Так вот:

A

B

C

D

E

F

G

H

становится таким:

D

E

F

A

B

C

G

H

Ответы [ 2 ]

1 голос
/ 20 марта 2020
$Lines = 'A'..'H'
$Lines[3..5],$Lines[0..2],$Lines[6..99]

или

$Lines[3,4,5,0,1,2,6,7,8,9]

Подробнее см. о массивах

0 голосов
/ 21 марта 2020
$path = "C:\xxxx"
$pathnew = $path + "\new"
If(!(test-path $pathnew))
{
      New-Item -ItemType Directory -Force -Path $pathnew
}


[System.Collections.ArrayList]$Files = @(Get-ChildItem $path -Filter *.json |
    Where-Object {$_.PSIsContainer -eq $false} | 
    Select-Object FullName,Name)

foreach ($File in $Files) {
    [System.Collections.ArrayList]$File_Contents = @(Get-Content $File.FullName)

    $FN = $File.FullName 
    $OutPutFile = $pathnew + "\" + $File.Name 

    $txt = Get-Content $FN
    $txt2 = Get-Content $FN | Measure-Object -Line 
    $txtLess3 = $txt2.Lines-3
    $txt[6..12],"`"submission`": {",$txt[1..3]
    ,"  `"performanceYear`": 2019},"
    ,$txt[13..$txtLess3] | Out-File $OutPutFile 
}
...