ヒント
ヒント 1見る
4つの書式をそれぞれ正規表現にします。. は \. とエスケープしないと任意の1文字にマッチします
ヒント 2見る
電話番号は区切りが - と . の2通りです。| で両方を1つの正規表現に書きます
ヒント 3見る
条件ごとに grep -E をパイプで4段重ね、最後に残った1行の memo を読みます
Regex Expert - Data Validation
/challenge/data.txt には受付記録が400行あり、各行にメールアドレス・電話番号・IPアドレス・日付が行ごとに違う順番・ラベルで並び、最後に memo="..." があります。書式が壊れた項目や、項目が無い行もあります。 次の条件をすべて正しい書式で1行に含む行はただ1行で、その行の memo がフラグです。 1. メールアドレス(xxx@yyy.zzz) 2. 電話番号(xxx-xxxx-xxxx または xxx.xxxx.xxxx。数字の桁数はこのとおり) 3. IPアドレス(xxx.xxx.xxx.xxx。数字1〜3桁を4つ) 4. 日付(YYYY-MM-DD) memo に KINOCO{...} の形の値を持つ行はほかにもありますが、どれも1つの条件が欠けています。正規表現を組み合わせて絞り込んでください。
4つの書式をそれぞれ正規表現にします。. は \. とエスケープしないと任意の1文字にマッチします
電話番号は区切りが - と . の2通りです。| で両方を1つの正規表現に書きます
条件ごとに grep -E をパイプで4段重ね、最後に残った1行の memo を読みます