我正在尝试过滤日志文件并遇到问题,到目前为止我所拥有的是以下内容,这不起作用,
tail -f /var/log/squid/accesscustom.log | awk '/username/;/user-name/ {print $1; fflush("")}' | awk '!x[$0]++' > /var/log/squid/accesscustom-filtered.log
目标是获取包含
的文件ipaddress1 username
ipaddress7
ipaddress2 user-name
ipaddress1 username
ipaddress5
ipaddress3 username
ipaddress4 user-name
并保存到accesscustom-filtered.log
ipaddress1
ipaddress2
ipaddress3
ipaddress4
它没有输出到accesscustom-filtered.log,但在> gt;工作不正常,文件结束为空。
编辑:将原始示例更改为正确
答案 0 :(得分:4)
使用tee
:
tail -f /var/log/squid/accesscustom.log | awk '/username/;/user-name/ {print $1}' | tee /var/log/squid/accesscustom-filtered.log
另请参阅:Writing “tail -f” output to another file和Turn off buffering in pipe
注意:awk
在超级用户示例中不像grep
那样缓冲,因此您不需要对awk
命令执行任何特殊操作。 (more info)