2017-02-08 9 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 
===================================================================================================================================================

私は唯一のソースを抽出必要がありますを/ mnt/XXX/ROO/fooの/ AAA/115565841_yyyyy

私はそれを行うことができますか?

THX

+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

あなたは、このように文字列を分割することができます:

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

し、リストから希望のアイテムを取得します。必要なものがどこにあるかを知っていると仮定します。

+0

ありがとうございました。 – labase

関連する問題