shell - UNIX shell 脚本 : Split a textfile by its entries

标签 shell unix

我正在尝试分析一个巨大的文本文件(1.6GB),其数据行如下所示:

20090118025859 -2.400000 78.100000 1023.200000 0.000000
20090118025900 -2.500000 78.100000 1023.200000 0.000000
20090118025901 -2.400000 78.100000 1023.200000 0.000000

我什至不知道有多少行。但我正在尝试按日期拆分文件。左边的数字是时间戳(例如,这些行来自 2009 年 1 月 18 日)。 如何根据日期将该文件分割成多个部分?

每个日期的条目数不同,因此使用带有常量的 split 不起作用。 我所知道的一切都是 grep file '20090118*' > data20090118.dat ,但肯定有一种方法可以一次完成所有日期,对吗?

提前致谢, 亚历克斯

最佳答案

使用awk:

awk '{print  > "data"substr($1,0,8)".dat"}' myfile

关于shell - UNIX shell 脚本 : Split a textfile by its entries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5167379/

相关文章:

ruby-on-rails - 设置环境变量 (ENV) 以在 Rails 中使用

unix - grep 查找 Unix 中的特殊字符

macos - 为什么找不到让我匹配多个模式?

python - 使用 shell 命令更改正在运行的程序行为

正则表达式 - 拆分字符串

bash - 为什么 glob `*[!t]*` 返回名称包含 `t` 的文件?

c - 父进程退出后如何让子进程终止?

linux - bash 执行整个脚本,但如果任何中间作业失败则返回退出代码 > 0

shell - osascript 'do shell script' 行结尾

unix - 在控制台中搜索和替换