我试图删除正在写入日志的重复文本,同时不断监视它。如何在Unix中使用实时监控(tail -f),剪切,排序和uniq?
唯一的问题是,这个特定的日志是时间戳,所以在可以确定相同的文本是否连续写入两次或三次之前,必须剪切时间戳。
我不是Unix专家,但这是我的尝试:
tail -f log.txt | cut -c 28- | sort | uniq
终端出现意外的行为,和只是挂起。而以下两种命令的工作,对自己的:
tail -f log.txt | cut -c 28-
或
tail -f log.txt | uniq
理想情况下,我想筛选出不相邻的文本输入,也就是我想也可以使用sort
,但目前我无法使用tail
上的-f
标志。
'sort'不会退出,直到它接收到来自其输入的文件结尾,但是您的输入是'tail -f',直到日志文件实际关闭时才会发送文件结束。如果您希望在日志完成之前退出,则不能在上述管道中包含'sort'。 – dg99 2015-04-01 22:31:38