如果存在于文件中,则awk管道的尾部不会追加

时间:2014-04-24 12:40:34

标签: linux bash awk grep tail

编辑:而不是丢弃重复的数据,我希望它覆盖"覆盖"重复数据,意味着保留数据但更新时间戳

问题1:

我有一个命令行,如下所示,

tail -f /some/file.log | awk '$2>10 (if (!($1 in a)) print $1, strftime("%Y-%m-%d %H:%M:%S"); a[$1]=1 ;system("")}' > /some/filteredfile.log

但是,我希望此输出仅将文本添加到文件中(如果它已经存在(在第1列中),,如果它在那里,则更新时间戳(在第二栏)

2 个答案:

答案 0 :(得分:1)

尝试:

tail -f /some/file.log | awk ' $2>10 {if (!($1 in a)) print $1; a[$1]=1; system("")}' > /some/filteredfile.log

答案 1 :(得分:0)

一个问题可能是两部分:

tail -f file.txt | awk -v date="$(date +"%Y-%m-%d-%h%m%s")" '$2>10 {print date, $1; system("")} ' > output.log

它应该解决你的第二部分,为我工作。