2017-02-08 3 views
0

다음 $ parse에서 문자열을 추출해야합니다. 문자열의배열에서 문자열을 추출하는 방법 powershell

 $parse = select-string -path .\xxx.log "Error" -allmatches –simplematch -context 1

예는 포함되어

 Start : Error : billing 1150116682 not found - exit. Source : /mnt/xxx/roo/foo/aaa/115565841_yyyyy.pdf 
===================================================================================================================================================

가 난 단지 소스를 추출해야합니다

은 어떻게 그것을 /을 /를 /을 /를 /을 할 수 115565841_yyyyy AAA foo는 루 XXX MNT ​​/?

$array = $parse.split(':') $lastItem = $array[-1]

을 한 다음 목록에서 원하는 항목을 얻을 :

들으

당신은 문자열을 할 수
+0

하위 문자열을 사용할 수 있습니다. –

답변

0

-SimpleMatch은 필요한 부분 문자열을 추출하는 데 사용할 수있는 정규식을 사용할 수 없으므로 사용하지 마십시오.

$s = "Start : Error : billing 1150116682 not found - exit. Source : /mnt/xxx/roo/foo/aaa/115565841_yyyyy.pdf" 
$s | Select-String "Error : .* Source : (.*)" | ForEach-Object { 
    $_.Matches[0].Groups[1].Value -replace '\.pdf$', '' 
} 

상기 출력 문자열 /mnt/xxx/roo/foo/aaa/115565841_yyyyy : 다음은 그 예이다.

+0

은'.pdf'를 제외합니다. – Nkosi

+0

답장을 보내 주셔서 감사합니다. – labase

+0

나는 또한 내가 본 것도이 숙소에서 발견했다. 내가해야 할 일은 그녀를 치료하는 것이다.

 $parses |foreach { \t $_.context.Postcontext }
labase

0

은 다음과 같이 분할합니다. 당신이 필요한 것이 어디 있는지 알고 있다고 가정합니다.

+0

답변 해 주셔서 감사합니다. – labase

관련 문제