0
이 스크립트에 도움이 필요합니다. 나는 천천히 이걸 얻었지만이 시점에서 도움이 필요하다.Powershell : 다중 대체 및 삭제
텍스트가 섹션의 끝에서 파일의 특정 지점으로 이동 한 다음 이동 된 텍스트를 삭제하는 스크립트가 필요합니다. 이동 될 텍스트에는 마커가 있고 위치도 표시됩니다. 나는 이동 후 텍스트를 삭제할 수 있어야합니다. 또한 동일한 디렉토리에있는 여러 개의 txt 파일에 대해 수행해야합니다. 예를 들어
:
Sample Input .txt
A;1;1;####; (#### is the location (1) marker)
B
B
B
====-1234 (==== is the find (1) marker)
A;1;1;####; (#### is the location (2) marker)
B
B
B
====-5678 (==== is the find (2) marker)
After processing
A;1;1;1234;
B
B
B
A;1;1;5678;
B
B
B
텍스트 파일은 다음과 같은 여러 그룹을 가질 수 있습니다. 각 그룹에 대해 위에서 아래로이 작업을 수행해야합니다. 여기까지 내가 지금까지 가지고있는 것입니다, 그냥 텍스트를 이동하고 삭제하지 않습니다.
$file = "C:\Users\NX07934\Documents\Projects\23045\Docs\SampleData\*.txt"
$old = "\####"
$find = Get-ChildItem $file -recurse| Select-String -pattern "====-*"
$split = $find.ToString().Split("-")
$new = $split[1]
get-childitem "C:\Dir" -recurse -include *.txt |
select -expand fullname |
foreach
{
(Get-Content $_) -replace $old,$new |
Set-Content $_
}
감사합니다.
. ==== - 1234에 대한 .txt 검색을 열고 ####을 숫자로 바꿉니다. 하나의 파일에는 여러 개의 그룹이 있고 디렉토리에는 여러 개의 파일이있을 수 있습니다. –
왼쪽 예. 파일 당 여러 인스턴스를 처리합니다. 파일 수집을위한 루프를 설정하기 만하면됩니다. – mjolinor
나는 스 니펫을 시도했는데 -Raw 줄에서 오류가 발생했습니다 : 'Get-Content : 매개 변수 이름 'raw'와 일치하는 매개 변수를 찾을 수 없습니다. C : \ Users \ NX07934 \ Documents \ Projects \ 23045 \ Docs \ SampleData \ PowerShellTest_Regex.ps1 : 11 char : 32 + $ text = Get-Content $ _ -raw <<<< + CategoryInfo : InvalidArgument : :) [Get-Content], ParameterBindingException + FullyQualifiedErrorId : NamedParameterNotFound, Microsoft.PowerShell.Commands.GetContentCommand' –