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