누구든지 텍스트 파일에서 문자열을 찾고 powershell을 사용하여 일치하는 텍스트 위의 10 줄을 삭제하는 간단한 방법을 찾는 데 도움이 될 수 있습니까?Powershell이 일치하는 텍스트 위의 줄을 삭제합니다.
는 예를 들어, 나는 (I 찾으려 유사한 텍스트의 여러 인스턴스와 함께)이 라인을 따라 텍스트 파일이이 예에 따라서
=============start============
random text
random text
random text
random text
random text
string I want to find
=============end============
=============start============
random text
random text
random text
=============end============
=============start============
random text
random text
random text
=============end============
=============start============
random text
random text
random text
=============end============
=============start============
random text
random text
random text
=============end============
, 나는 문자열 "의 모든 인스턴스를 검색 할 나는 찾고 싶다 "라고 말하면 일치하는 텍스트 위에 X 줄을 지우고 나머지를 다른 .txt 파일로 출력합니다. 위의 줄 수는 항상 같습니다.
(Get-Content -LiteralPath $Path\processing\data.txt) -replace '$matchstart*$matchend','' |out-file $Path\processing\test.txt
그러나, 이것은 나에게 내가 (아무것도 제거하지 않습니다) 기대했다 출력을 제공하지 않는 것 다음과 같이
나는 두 문자열 사이의 텍스트와 일치하는 것을 시도했다.
이렇게해도 작동하지만 잠재적으로 문제가됩니다. 왜냐하면 시작 문자열이 여러 번 나타나고 내가 원하는 것 이상을 삭제할 수 있기 때문입니다.
$str = Get-Content $Path\processing\pfxdetailpre.txt | out-string
$start = $str.indexOf($nokeystart) + 1
$end = $str.indexOf($nokeyend, $start)
$length = $end - $start
$result = $str.substring($start, $length)
다음은 내 문자열과 줄을 삭제하는 것이 좋습니다. 위의 X 줄을 더 삭제하려면 편집 방법을 알아낼 수 없습니다.
gc $file | %{
$a=$b=$null
}{
if($a){$a}
$a=$b
$b=$_
if($b -match $key){$a=$b=$null}
}{
if($b -notmatch $key){
if($a){if($b){"$a`n$b"}else{$a}}elseif($b){$b}
}
} | out-file $newfile
이미 시도한 질문으로 질문을 업데이트 할 수 있습니까? – arco444
스택 오버플로는 코드 작성 서비스가 아니므로 직접 코드를 작성해야합니다. 문제에 대한 조사를 해보고 (아마도 페이지 상단의 검색 창을 시도해보십시오) 직접 코드를 작성해보십시오./코드에 문제가있는 경우 다시 질문하고 시도한 내용과 이유가 무엇인지 설명하십시오. 훌륭한 질문에 대한 도움을 받으려면 [질문하는 방법] (http://stackoverflow.com/questions/how-to-ask)을 참조하십시오. –
내가 지금 가지고있는 코드는 다음과 같이 텍스트 주위의 시작 문자열과 끝 문자열을 일치 시키려고했습니다. (Get-Content -LiteralPath $ Path \ processing \ data.txt) -replace '$ matchstart * $ matchend' ''| out-file $ Path \ processing \ test.txt 명령은 실행되지만 텍스트가 모두 제거되지 않으므로 예상 한대로 일치하지 않습니다. –