据我所知,tail -f <filename>
允许从一个文件连续打印新附加的数据。
如果我需要获取内容怎么办来自多个文件位于同一父文件夹下的多个文件夹中,然后在需要时过滤该内容,最后将其作为实时流打印,因为新数据会附加到多个受监视文件中的任何一个?
编辑:操作系统是RedHat Enterprise Linux 7.4
答案1
使用以下单行代码:
while true; do cat /path/to/numerous/folders/and/files/*/*.txt | grep "some filter" | tail -n 10; sleep 1; done
每隔 1 秒,脚本将打印过滤流的最后 10 行。
要中断循环,请按CtrlC。
答案2
尝试这个命令:
ls /path/to/files/to/be/monitored/by/tail | while read fname; do tail -f $fname & done; wait