![`tail -f 代替` 同じ親フォルダの下の複数のフォルダ内の複数のファイルから連続ストリームの印刷を許可する [重複]](https://linux33.com/image/144408/%60tail%20-f%20%E4%BB%A3%E6%9B%BF%60%20%E5%90%8C%E3%81%98%E8%A6%AA%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%81%AE%E4%B8%8B%E3%81%AE%E8%A4%87%E6%95%B0%E3%81%AE%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E5%86%85%E3%81%AE%E8%A4%87%E6%95%B0%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8B%E3%82%89%E9%80%A3%E7%B6%9A%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%A0%E3%81%AE%E5%8D%B0%E5%88%B7%E3%82%92%E8%A8%B1%E5%8F%AF%E3%81%99%E3%82%8B%20%5B%E9%87%8D%E8%A4%87%5D.png)
私が知っている限り、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