2017-02-13 21 views
0

.rtfファイルの解析、.csvファイル内の電子メールアドレスの出力?Powershell Select-String .rtfから.csvへの電子メールの解析

複数の電子メールアドレスを含む.rtfファイルがあります。このファイルを解析して、.csvファイルとActive Directoryのアクティブユーザーを比較できるようにする必要があります。私は、出力の多くを持っていないように、当然の

基本的に私は、「@ my.domain.com」の左に何かしたい

$finds = Select-String -Path "path\to\my.rtf" -Pattern "@my.domain.com" | ForEach-Object {$_.Matches} 
$finds | Select-Object -First 1 | ft * 

これは私の1の結果を提供します。 私はマッチや完全な行だけを管理します。

私はこれが私のアドレスでは非常に最後の二つの手紙を与える

$finds = Select-String -Path "path\to\my.rtf" -Pattern "\[email protected]" 

のラインに沿って何かを追加しようとしました。

私は「ワイルドカード」

-Pattern "\[email protected]" 

にドットを追加し続けるならば、私はまた、より少ない文字が含まれているアドレスには数字/文字(.RTFフォーマット)のトンを取得します。

どうすればよいですか?

編集:解決策を見つけたらすぐに質問を更新します。現在のところ、私は正規表現で試しています。 例:

-Pattern "\w*[email protected]" 
+0

RTFパーサーを見ましたか? – vonPryz

+0

@vonPryzありがとう、私はそれを今見ている。 – Fredrik

答えて

0
$mPattern = "[a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+(\.[a-zA-Z]{2,4})"  
$lines = get-content "path\to\your.rtf" 
foreach($line in $lines){  
    ([regex]::MAtch($rtfInput, $mpattern, "IgnoreCase ")).value } 
+0

ありがとう!私が質問を更新するとすぐに、私はあなたの答えを見た。私は自分のパターンを削除して追加しました。ありがとうございました! – Fredrik

0

このコードは、私のために働きました。私の最初のコードですが、新しい検索パターンがあります。

$finds = Select-String -Path "path\to\my.rtf" -Pattern "[a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+(\.[a-zA-Z]{2,4})" | ForEach-Object {$_.Matches} 
$finds | Select-Object -First 10 | ft * 

ありがとう!

関連する問題