小编Jay*_*Jay的帖子

基于列Windows的大文件过滤拆分

我有大约 2 TB 的数据文件格式如下

12/20/2015 somerandomdata
12/20/2015 somerandomdata
12/20/2015 somerandomdata
12/20/2015 somerandomdata
12/21/2015 somerandomdata
12/21/2015 somerandomdata
12/21/2015 somerandomdata
12/21/2015 somerandomdata
12/22/2015 somerandomdata
12/22/2015 somerandomdata
12/22/2015 somerandomdata
12/22/2015 somerandomdata
Run Code Online (Sandbox Code Playgroud)

我想删除某些日期。例如,我可能想为 12/20/2015 和 12/22/2015 生成文件。

12/20/2015 somerandomdata
12/20/2015 somerandomdata
12/20/2015 somerandomdata
12/20/2015 somerandomdata
Run Code Online (Sandbox Code Playgroud)

12/22/2015 somerandomdata
12/22/2015 somerandomdata
12/22/2015 somerandomdata
12/22/2015 somerandomdata
Run Code Online (Sandbox Code Playgroud)

我可以很容易地使用grep做到这一点,在linux做grep '12/20/2015' filein > fileout20grep '12/22/2015' filein > fileout22,但这样做有两个问题。

首先,更重要的是,它需要遍历输入文件两次以生成输出。每个文件有 2 TB 数据和多个日期,这是一个重大问题。(相关:我也不希望解决方案将文件分解为每个可能的日期,因为我不想要大多数日期的数据,每个输入文件中只有大约 10%)

第二个问题是我需要在 Windows 上运行它。(我意识到大多数 linux 命令都具有使用 GnuWin32 等的 Windows 等价物,所以这不是什么大问题)

有什么方法可以有效地做到这一点吗?

编辑:到目前为止的答案有两个问题之一,所以我会澄清一点。第一个问题是我不想多次遍历每个输入文件。因此,循环遍历每个日期是行不通的。这是因为如果我有 200 …

windows grep awk

2
推荐指数
1
解决办法
2243
查看次数

标签 统计

awk ×1

grep ×1

windows ×1