Powershell을 처음 사용합니다. 파일의 텍스트를 여러 번 바꾸려고하지만 중복 된 줄이 생깁니다.Powershell -match - 출력에 중복 행을 생성합니다.
이(Get-Content "C:\temp\test.txt") |
foreach-object {
if ($_ -match "This"){
$_ -replace "This" , "That"
}
if ($_ -match "test"){
$_ -replace "test" , "toast"
}
} | Set-Content "C:\temp\test.txt"
내 출력해야한다 :
This is a test.
There is a test.
나는 다음과 같은 스크립트를 실행
:
That is a toast.
There is a toast.
를하지만의 교체에 대해 별도의 라인을 출력하고 내 테스트 파일은 다음과 선이 입력의 첫 번째 줄 :
That is a test.
This is a toast.
There is a toast.
두 줄 사이에있는 두 번째 줄은 "일치"기준 중 하나를 충족하며 올바르게 대체되었습니다. 그러나 첫 번째 줄은 두 번 출력됩니다. 한 줄은 각 줄에 대입됩니다. 라인이 두 조건에 모두 일치하면 스크립트를 한 번만 출력하면됩니다.
(Get-Content "C:\temp\test.txt") -replace 'This','That' -replace 'test','toast' | Set-Content "C:\temp\test.txt"
@mjolinor가 나의 예제 질문을 해결하기위한 답을 제공하지만, 이것은 나의 근본적인 문제와 $ _의 사용에 대한 나의 오해를 해결한다. – Jason