foreach를 사용하고 텍스트 파일을 바꾸어 문자를 줄 바꿈 및 x 수만큼 들여 쓰기 할 수있는 방법이 있습니까? 독특한 요청이지만, 다른 프로그램에서 읽을 수 있도록하는 것입니다.문자를 대문자로 바꾸고 powershell에서 줄 바꿈을 사용하십시오.
샘플 텍스트 :!
dyreriket | {Animalia}
leddormer의 @ {환형 동물문}
¤igler의 $ {빈모 류}
기호 |, @, ¤, $와 많은 것은 줄 바꿈과 주어진 수의 들여 쓰기로 대체되어야합니다. 들여 쓰기가 작동하도록 할 수는 있지만 줄 바꿈은 할 수 없습니다. `n을 사용할 때 응답이 없습니다. 원래 문자 만 제거합니다. 지금까지이 코드를 가지고 놀았습니다.
$t1 = '\@';
$r1 = "`n`t`t";
$t2='\¤';
$r2="`n";
Get-Content C:\arter\test.txt `
| ForEach-Object { $_ -creplace $t1, $r1; } `
|ForEach-Object { $_ -creplace $t2, $r2; } `
| Out-File C:\arter\test2.txt ;
당신은이 같은 라인 별 텍스트 교체 할 수
답장을 보내 주셔서 감사합니다.하지만 예약 된 문자 또는 기타 이유로 인해 일치하지 않는 결과가 표시됩니다. 대체 할 때 | 그것은 문서의 모든 단일 문자 사이에 't를 추가합니다. 그리고 그것은 'n'을 무시합니다. –
'-replace' 연산자의 대체 텍스트 매개 변수는 [.NET 정규 표현식]입니다 (http://msdn.microsoft.com/library/az24scfc.aspx). 파이프는 정규 표현식의 특수 문자이므로'\\ '로 이스케이프 처리해야합니다. PowerShell이 아닌 .NET 정규식 엔진에서 이스케이프 처리를한다는 점에 유의하십시오. 따라서 Backtick 대신 백 슬래시를 사용해야합니다. – BACON
Aah. 그 중 일부를 설명하지만 줄 바꿈은 여전히 작동하지 않습니다. S 여기에 입력 한 코드가 있습니다. '$ searchText ='\ | '; $ replacementText = "'n't''t"; Get-Content C : \ arter \ final1.txt ' | ForEach-Object {$ _ -replace $ searchText, $ replacementText; }' | Out-File C : \ arter \ final2.txt; ' –