[英]tail -f, awk and output to file >
我正在嘗試過濾日志文件並遇到問題,到目前為止,以下內容是行不通的,
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的輸出就可以工作,但是>中的某些內容無法正常工作,並且文件最終為空。
編輯:更改原始示例是正確的
使用tee
:
tail -f /var/log/squid/accesscustom.log | awk '/username/;/user-name/ {print $1}' | tee /var/log/squid/accesscustom-filtered.log
另請參閱: 將“ tail -f”輸出寫入另一個文件並關閉管道中的緩沖
注意:在超級用戶示例中, awk
不會像grep
那樣進行緩沖,因此您不需要使用awk
命令做任何特殊的事情。 ( 更多信息 )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.