【发布时间】:2016-06-25 17:40:15
【问题描述】:
我有一个包含可变行数的文件,例如:
cn015 00:00:02 0 0.00 99.00 cn015 00:00:02 1 0.00 99.00 cn015 01:00:01 0 0.00 99.00 cn015 01:00:01 1 0.00 99.00 cn015 01:00:02 0 0.00 99.00 cn015 01:00:02 1 0.00 99.00 cn015 02:00:01 0 0.00 99.00 cn015 02:00:01 1 0.00 99.00 cn017 11:00:01 0 24.41 74.59 cn017 11:00:01 1 24.90 74.10 cn017 11:00:02 0 95.96 3.04 cn017 11:00:02 1 96.04 2.96 cn017 12:00:01 0 30.34 68.66 cn017 12:00:01 1 31.24 67.76 cn017 12:00:02 0 0.00 99.00 cn017 12:00:02 1 0.00 99.00- 第一列是文本
- 第二列是时间字段
- 第三个是数字
我想获取这样的文件:
cn015 00:00:02 0 0.00 99.00 cn015 00:00:02 1 0.00 99.00 cn015 01:00:01 0 0.00 99.00 cn015 01:00:01 1 0.00 99.00 cn015 02:00:01 0 0.00 99.00 cn015 02:00:01 1 0.00 99.00 cn017 11:00:01 0 24.41 74.59 cn017 11:00:01 1 24.90 74.10 cn017 12:00:01 0 30.34 68.66 cn017 12:00:01 1 31.24 67.76我希望每个 cn 的每个小时只有第一行(在这个例子中,只有
cn015 00:00:02 0 0.00 99.00 cn015 00:00:02 1 0.00 99.00cn015 00:00)
我更喜欢使用awk 的答案,但sed 或sort 也可以接受。
【问题讨论】:
-
A.鉴于您的示例所需的输出低于此,不清楚您所说的“仅每小时的第一行”是什么意思。 B. 在突出显示的文本上使用编辑框左上角的
{}工具来保持代码/数据/errMsgs 的格式正确。 C. 您忘记发布您的代码。 StackOverflow 旨在帮助人们修复他们的代码。这不是免费的编码服务。任何代码都比没有代码好。祝你好运。 -
输入行是否已排序?按第一个字段?按第一个和第二个字段?按前三个字段?
-
所有行都像样例一样按第一、二、三列排序。
-
shellter:我没有要分享的代码,因为没有 .我想使用一个简单的脚本来过滤输出。我可以使用一些循环来消除这些行,但它很慢并且没有优化,因为文本文件包含 200.000 行。