Bash脚本从文件夹中的最新文件grep字符串

时间:2016-02-29 09:42:04

标签: grep

你能帮我用bash脚本从文件夹中的最新文件grep字符串吗?例如我有一个文件夹/var/log/folder包含一些文件,我需要每隔30秒grep文本字符串some string来自最新的5个文件,结果应该写在文件/var/log/file.txt中。

提前谢谢!

2 个答案:

答案 0 :(得分:1)

这应该这样做 你需要把它放入cron

cd /var/log/folder && grep "some string" `ls -c | head -n 5\` > /var/log/file.txt

如果您需要附加到日志,请使用>>而不是>

答案 1 :(得分:0)

您可以使用以下脚本。只需根据您的要求修改while循环中的条件即可。

#!/bin/bash
mydir="/var/log/"
rm ${mydir}/file.txt
while [ 1 ]
do
        date >>  ${mydir}/file.txt
        ls -tr ${mydir}/folder/ | tail -n 5 | awk -v var="${mydir}" '{print var"/folder/"$1}' | xargs grep "Some String" >> ${mydir}/file.txt
        sleep 30
done