Python 使用 grep 查看文件尾部

0 投票
1 回答
763 浏览
提问于 2025-04-17 22:05

请帮帮我。我有一些日志文件,比如:
test_2014_03_13.log

我想用grep命令查看这个文件的内容,当新文件(test_2014_03_14.log)创建时,我希望能继续用grep查看新文件,而不想漏掉任何行。

我需要关于如何切换文件而不漏掉数据的信息。

抱歉我的英语不好。

1 个回答

0

根据我的理解,你想在创建新日志文件时进行一些更改。

你需要运行两个不同的进程。

  • 第一个进程是用来监视文件夹的变化,这样你就能知道什么时候新文件被创建,然后进行相应的更改。
  • 第二个进程负责执行“Tail+Grep”命令,当它被关闭时(通过Kill指令),它应该继续处理最新的文件。

这里有一个用Bash写的例子,你可以很容易地用Python来实现。我看到你其实是想要Python的例子时,已经晚了。

#!/bin/bash

pidTail=0

inotifywait -m /var/log/yourfiles -e created |
while read path action file; do 
    echo “changed to $file”
    if [ ! $pidTail -eq 0 ]; then
        kill $pidTail
    fi
    tail -f $file | grep something >> newfile.log & 
    pidTail=$!
done

注意:我在这里写的代码没有经过测试,可能会有错别字;)

迟到总比不到好!

来源:

Bash中的线程?

监控文件夹中新文件的脚本?

撰写回答