Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 对过去两年的电子邮件日志文件进行排序。试图通过用户电子邮件查找唯一的条目_Sorting_Unix_Sed_Terminal_Grep - Fatal编程技术网

Sorting 对过去两年的电子邮件日志文件进行排序。试图通过用户电子邮件查找唯一的条目

Sorting 对过去两年的电子邮件日志文件进行排序。试图通过用户电子邮件查找唯一的条目,sorting,unix,sed,terminal,grep,Sorting,Unix,Sed,Terminal,Grep,我正在尝试对电子邮件日志文件进行排序。文件的每一行看起来像: deliver(jsmith): May 17 >: saved mail to INBOX deliver(bdillon): May 17 >: saved mail to INBOX jsmith和bdillon是电子邮件 基本上我想做的是修剪这个文件,只显示一个jsmith实例。因此,如果jsmith在5月17日发送了多封电子邮件,我将如何删除除一行之外的所有行 我希望对每个电子邮件条目都这样做,因此jsmi

我正在尝试对电子邮件日志文件进行排序。文件的每一行看起来像:

deliver(jsmith): May 17  >: saved mail to INBOX
deliver(bdillon): May 17  >: saved mail to INBOX
jsmith和bdillon是电子邮件

基本上我想做的是修剪这个文件,只显示一个jsmith实例。因此,如果jsmith在5月17日发送了多封电子邮件,我将如何删除除一行之外的所有行


我希望对每个电子邮件条目都这样做,因此jsmith、bdillon、tjones等只有一个条目。

因为您现在删除了2014年1月1日之前的所有行。现在,您可以假设电子邮件和日期之间的所有匹配在2014年是唯一的。这样的内容应该足以找到所有唯一的条目

grep -o -P "\w+\((\w|\d)+\):\s+\w+\s+\d+" yourfile | sort | uniq > newfile
注:

  • -o意味着只保留grep在那条线上找到的东西

  • -p表示使用perl风格的正则表达式。字符串是一个perl 正则表达式匹配for
    交付(bdillon)的文本:5月17日

  • 排序对行进行排序

  • uniq删除重复项

这是假设您只需要一个具有唯一条目的日志,如

deliver(bdillon): May 17
deliver(jsmith): May 17

如果还需要该消息,请删除grep,只需对该文件进行cat或直接调用sort

你必须向后读取文件,直到你点击Jan 01,否则你永远无法分辨你点击的是哪一个Jan 01。我会在Vim中这样做吗?这是一个相当大的文件。它有4亿行。
0G?01年1月
,基本上。转到文件末尾,然后向后搜索Jan 01。但是你试图在文件上做会计,而vim是一个文本编辑器。那么什么是最好的方法呢?我对终端命令没什么意见,但我还是个新手。有更好的日志记录系统吗?它包括全年?这将简化今后的所有工作。