2017-09-20 7 views
0

必要はありませ何かを探して(電話番号や住所などのような他の無関係な情報の無数のと一緒。)Grepの1 PARAMTERにフィットしますが、我々が解析されなければならない電子メールの多くを私のデータセット内の他の

私は電子メールの基準を満たしているが、電子メールの正しい形式を持っていないものを探すことを試みています。だから、私はgrepの "AND"関数を使って試してみたところ、の第二ののパラメータに適合しますが、最初のものは適合しませんでした。

grep -E -c -v "^[a-mA-M][a-zA-Z]*\[email protected][A-Za-z]+\.[A-Za-z]{2,6}"Data.bash | grep @ Data.bash 

これはどのように実装する必要がありますか?これはちょうど@が入っているものを見つけます(最初のパラメータは0を返し、2番目のパラメータは@ですべてを見つけています)。

要するに、grepでどのように2つの条件をANDしますか?

EDIT:サンプルデータ

メールアドレスは、ユーザーIDを持っているとドメイン名は、文字、数字、 ピリオド、およびダッシュで構成することができます。

Matches: 
[email protected] 
[email protected] 

No Match: 
[email protected]^mail.com 
[email protected] 
@[email protected] 
[email protected] 
+1

マッチングと非マッチング入力を示すいくつかのサンプルデータは、ここでいいだろう。 –

答えて

0
grep -P '^\[email protected][[:alnum:]-.]+.com' inputfile 
[email protected] 
[email protected] 

これは、ドメイン名として任意のアルファ、数、-または.が可能になります。

無効な電子メールアドレスを表示します次のとおりです。

grep -vP '^\[email protected][[:alnum:]-.]+.com' inputfile 
[email protected]^mail.com 
[email protected] 
@[email protected] 
[email protected] 
+0

これは私が行ったことを行いますが、有効な電子メールアドレスではないと考えなければなりません。 I. grep -v -P '^ \ w + @ [[:alnum:] - 。] + .com' AND grep "@" – Derp

+0

ロジックは、(あなたが述べたように)所望のパラメータを満たさないが、それは* – Derp

+0

を含んでいますが、あなたの要求を正しく理解していれば、 'grep -vP '^ \ w + @ [[:alnum:] - 。] +。com' | grep @'を使うべきです。しかし、正規表現 '^ \ w + @ [[:alnum:] - 。] +。com'は、文字列に' @ 'の存在を強制します。 –

関連する問題