【发布时间】:2017-02-05 21:53:53
【问题描述】:
如果指定列的日期早于 n 天,我需要帮助删除行。我的文件包含以下内容。从下面的文件中,我需要在第 4 列中找出当前日期少于 50 天的条目并删除整行。
ABC , 2017-02-03, 123 , 2012-09-08
BDC , 2017-01-01, 456 , 2015-09-05
测试 , 2017-01-05 , 789 , 2017-02-03
我想要的输出如下。
ABC, 2017-02-03, 123, 2012-09-08
BDC, 2017-01-01, 456, 2015-09-05
【问题讨论】:
-
文件有多少行?如果只有几行,则可能适合有一个读取循环和一个日期命令来单独处理每一行。另一种选择可能是将文件导入 excel 或 libreoffice 等电子表格并在那里进行过滤。
-
顺便说一句,您使用哪个操作系统? ksh 听起来像 AIX。
-
嗨,拉斯。 AIX 就是这样。但我会尝试您在 Linux 上提供的以下脚本。您能告诉我如何将以下脚本与现有脚本集成。
-
我看到两个选项:简单的一个:安装 GNU awk。最难的:查看stackoverflow.com/a/38319144/4086774 并尝试它是否有效。您可以根据自己的情况采用它。我不确定您是否需要 GNU date 。 (对不起,只有 GNU Linux 可用。)这可能只对小文件有用。在 AIX 和 Unix.Stackexchange 上有很多关于日期计算的帖子。许多答案指向 GNU date 或 GNU Awk 或 perl。
-
您可能希望在此问题中添加 awk 和 aix 标签以吸引这些领域的专家。