使用bash工具处理日志文件

时间:2012-08-20 13:45:26

标签: bash shell sed awk grep

我有一个大约10列的.csv文件,用于记录数据。我想用这样的东西:

How to get the first line of a file in a bash script?

它抓取每个文件的第一行然后处理日志。但是,一旦处理完该行,我想将其标记为已处理(可以像在末尾添加***或其他内容一样简单)。基本上,我想抓住未处理的第一行,处理它,然后移动到下一条未处理的行等。

我需要使用sed,awk,grep和/或其他标准来执行此操作。 bash脚本将在无限循环中在后台运行并运行。基本上,我正在尝试实时读取和处理此日志文件,但需要日志记录。

修改 另外,我需要这个来标记文件中已读取的行。这样,如果服务器停止,我就知道在哪里接受处理。如果我能找到一种方法,那么尾部就会起作用。

谢谢!

1 个答案:

答案 0 :(得分:2)

而不是坐在无限循环中,你可以这样做:

tail -n +1 -f your_log_file | some_processing_pipeline

这将开始在第1行读取您的日志文件,然后不断等待新行出现并将其传递给some_processing_pipeline