我正在跟踪文件输出并查找具有某些数据的行。我不想将数据输出到屏幕,而是计算它找到的实例数并将其发送到屏幕。实例的数量可以滚动和增加,或者它可以覆盖现有的并且仅在它增加时显示它。那部分并不是很重要,我只需要找到一个运行中的实例数。
我现在的命令是
尾 -f 日志文件 | grep '我想要的数据'
我曾尝试使用 grep -c 和 wc -l 但没有给我想要的结果。这个特定的 Linux 发行版没有 pv 并且无法获得它。有没有办法我可以做到这一点?
我正在跟踪文件输出并查找具有某些数据的行。我不想将数据输出到屏幕,而是计算它找到的实例数并将其发送到屏幕。实例的数量可以滚动和增加,或者它可以覆盖现有的并且仅在它增加时显示它。那部分并不是很重要,我只需要找到一个运行中的实例数。
我现在的命令是
尾 -f 日志文件 | grep '我想要的数据'
我曾尝试使用 grep -c 和 wc -l 但没有给我想要的结果。这个特定的 Linux 发行版没有 pv 并且无法获得它。有没有办法我可以做到这一点?
GNU awk 可以很容易地做到这一点。
滚动输出:
您也可以省略 grep 并改用 awk 的正则表达式:
对于单行输出,您可以在前面添加一个 CR 使其再次从行的前面开始(在控制台上工作):
总是有可靠的
watch
选择:当您的文件大小超过 100 MB 时,这是理想的选择。
感谢@sa289 建议使用中间文件: