1

例を考えてみましょう:

Feb 14 26:00:01 randomtext here mail from user10@mailbox.com more random text
Feb 15 25:08:82 randomtext random text mail from user8@mailbox.com more random text
Jan 20 26:23:89 randomtext iortest test test mail from user6@mailbox.com more random
Mar 15 18:23:01 randomtext here mail from user4@mailbox.com more random text
Jun 15 20:04:01 randomtext here mail from user10@mailbox.com more random text

BASH を使用して、「26」「25」などのタイム スタンプの最初の部分と、「user10@mailbox.com」などのユーザーの電子メールを取得しようとしています。

出力はおおよそ次のようになります。

26 user10@mailbox.com
25 user8@mailbox.com
26 user6@mailbox.com
18 user4@mailbox.com
20 user10@mailbox.com

私は使用してみました:

cat myfile | grep -o '[0-9][0-9].*.com'

しかし、途中で余分なテキストが表示されます。必要な 2 つの文字列だけを取得するにはどうすればよいですか?

4

4 に答える 4

0

すべてのメールアドレスにドメイン .com のみが含まれる場合、sed を使用した前の回答は完璧です。ただし、別のドメインを持つことができる場合は、この sed を改善することをお勧めします。

sed 's/^.* \([0-9][0-9]\):.* mail from \(.*@.*\..*\)\ more.*/\1 \2/' file
于 2013-11-02T10:45:04.687 に答える