我被困在下面的命令的边缘情况下Working with continuously appended log file in bash问题awk中使用多个变量,从不同的正则表达式
tail -f your_log_file|gawk '/RMS_REJECT/{key=$2":"$3;a[key]++;if (LK && LK != key){print LK,a[LK];delete a[LK]};LK=key}' FS='[-:]'
时,我有一整天和LK关键的只有1个实例,就会出现问题!=关键从未发生过
tail -f your_log_file|gawk '/RMS_REJECT/{key=$2":"$3;a[key]++;if (LK && LK != key){print LK,a[LK];delete a[LK]};LK=key}' <last key LK to be taken from just tail -1 of your_log_file and not RMS_REJECT filtered> FS='[-:]'
有没有一种方法来设置的正常LK = "$2:$3"
文件(RMS_REJECT过滤的)。基本上是比较(RMS_REJECT的最后一个键和当前时间的最后一个键),从而解决问题。
我试图tail -f $inputfile | awk 'BEGIN {FS='[-:]' ;LK=$2":"$3 }/RMS_REJECT/{key=$2":"$3;a[key]++;if (LK && LK != key){print LK,a[LK]+1;delete a}}' FS='[-:]'
我的第二次尝试
tail -f $inputfile | awk '/RMS_REJECT/{key=$2":"$3;a[key]++;print LK,key ;if (LK && LK != key){print key,a[key]+1;delete a}} /PATTERN2/{LK=$2":"$3; }' FS='[-:]'
假设模式2存在于每一行(不包含RMS_REJECT)
不要以为人们会去点击链接来尝试你的问题拼凑。您的问题包括简洁,可测试的示例输入和预期输出,并在您的代码中添加一些空格和缩进以便清晰易读。否则,愿意投入更多时间来尝试理解你的问题,以便他们可以帮助你的人群会相对较少... –