【发布时间】:2012-08-20 13:45:26
【问题描述】:
我有一个 .csv 文件,其中包含大约 10 列正在记录数据。我想使用这样的东西:
How to get the first line of a file in a bash script?
它在哪里抓取每个文件的第一行,然后处理日志。但是,一旦处理了该行,我想将其标记为已处理(可以像在末尾添加一个带有 *** 或其他内容的新列一样简单)。所以基本上,我想抓住第一行未处理的,处理它,然后移动到下一个未处理的行,等等。
我需要使用 sed、awk、grep 和/或其他标准来执行此操作。 bash 脚本将在无限循环中在后台运行。本质上,我正在尝试实时读取和处理此日志文件,但需要该日志作为历史记录。
编辑: 另外,我需要它来标记文件中已读取的行。这样,如果服务器停止,我就可以知道在哪里进行处理。因此,如果我能找到一种方法,tail 就会起作用。
谢谢!
【问题讨论】:
-
所以你不想要文件中的第一行,而是想要第一行未处理的行?
-
正确 - 我确实想要第一条未处理的行。 Logrotate 是一种可能性......但就像原始帖子所说的那样,这将运行,我需要尽可能接近实时地获取这些数据。