2009-06-04 14 views
1

FIND(cmd.exeのデフォルトコマンド)を使用してファイルから次の文字列を安全に検出する方法はありますか?そのFROM:行には[email protected]があります。FINDコマンドを使用してcmd.exeで1行の2文字列を検索

From: "Minnie" <[email protected]> 

ラインにこれ​​に混在させることはできません。

例えば
To: <[email protected]> 

このバッチファイルの行が正常に動作しません:

find "[email protected]" abc.txt 

答えて

4

findの代わりにfindstrを使用できます。これには、正規表現一致などの高度な機能があります。

findstr /r /c:"^From:.*<[email protected]>" test.txt 

は、「From:」で始まる行だけが指定された電子メールアドレスを見つけます。

findstrは、Windows 2000

0

私は本当にあなたがを見つけるだけなのでリテラルの一致を探していないと何を持って、を見つけることを成し遂げることができるようになるだろうとは思いませんワイルドカードや正規表現を使用する能力

このオプションをお持ちの場合は、UnxUtilsパッケージをインストールしてgrepを使用してください。それは、一般的なUNIXユーティリティからWin32への移植です。あなたはでそれを見つけることができます:[http://unxutils.sourceforge.net/][1]

あなたは、このようにgrepコマンドを発行したい:

grep "From.*me\@my\.com" abc.txt 

役立ちます希望を!

+0

はgrepのセットERRORLEVELを行い、少なくともので、デフォルトで含まれています? – Tom

4

このように二つのパイプライン化のfindコマンド、試してみてください。彼らが含まれている行だけ残すように

find "[email protected]" abc.txt | find "From:" 

[email protected]」を含むすべての行の元検索し、後者のフィルタを「から:」を。

+0

うわー、Windowsはコマンドパイプライニングをサポートしていますか?毎日何か新しいことを学ぶ! :) –

関連する問題