gpt4 book ai didi

linux - 按唯一列值对 CSV 进行子集化

转载 作者:太空宇宙 更新时间:2023-11-04 03:48:43 24 4
gpt4 key购买 nike

我对 Linux 相当陌生,觉得这应该是一个相当简单的任务,但我不太明白。我有一个包含数百万行的大型数据文件,我想根据日期将文件分成更小的文件。我有一个包含 YYMMDDHH 数据的时间列,我想根据 DD 创建子文件。对于每个新的 DD,我希望创建一个包含当天所有条目的新文件。该文件是 csv,并且已按时间排序。

从我读到的内容来看,我应该能够使用 cat、awk 和可能的 grep 来执行我想要的操作。

进一步说明,每行有 14 列。一列包含包含 YYMMDDHH 的数据(即 14071000、14071000...14071022,14071022....14071100...14071200...)

我可以手动子集

cat trial | awk 'NR>=1 && NR<=100 {print}' >output.txt

这给了我 1 到 100 之间的行。我想知道是否有一个命令允许我根据 YYMMDDHH 列进行提取,以便 140710 上的所有数据点都可以放入一个文件中。希望这有助于更好地解释我的问题。

最佳答案

你应该能够使用某物。像这样:

awk '{ line_date = $1 / 100; print > "out_" line_date ".txt"; }'

顺便说一句,您可能希望通过不使用管道而是直接在文件上使用 awk 来避免“无用地使用 cat”。

关于linux - 按唯一列值对 CSV 进行子集化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27092516/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com