在日志中出现单词时运行命令?

时间:2012-02-16 01:50:50

标签: c file bash find

我想知道是否有任何方法可以扫描文本文件然后运行命令。我试过grep无处可去。我也试过这个发现。事情,这听起来很有希望,但我似乎无法得到如何使用它的良好解释。如果您想知道这将用于什么,这里有一个解释:我有一个iPhone应用程序通过http发送一个单词,服务器端应用程序正在侦听该命令,并在收到它时运行命令。

2 个答案:

答案 0 :(得分:2)

以下内容将捕获查找包含“needle”的查找的所有文件,并显示其内容。相应地修改:

找到。 -exec grep needle -q {} \; -exec cat {} \;

答案 1 :(得分:0)

在bash中,您可以tail -f该文件,并将其传递给此脚本:

while read LINE; do
   grep -q word <<< $LINE && command_to_execute
done

但最好的办法是将此逻辑放在Web服务器上,而不是解析文件(我猜的日志文件)。

<强>更新

上面的循环运行起来很昂贵,因为每次迭代都会调用grep。这个更好:

tail -f file | grep word | while read LINE; do
   command_to_execute
done