82 lines
2.6 KiB
Awk
82 lines
2.6 KiB
Awk
#!/bin/awk -f
|
|
|
|
#############################
|
|
# clean data and filter some to rediect to new file
|
|
# Author: Liao
|
|
# modify time: 2022/2/17 17:05 (+8:00)
|
|
#############################
|
|
|
|
BEGIN{
|
|
# filePath = "/data/log_dir/mySimpleLog"
|
|
|
|
# system("echo '\n\n\n----------' >> "awk_run_log_path" && date '+%x %X' >> "awk_run_log_path)
|
|
|
|
#dp_recv_from_device = @/ dp rept_type:[0-9]+, data:/
|
|
#dp_is_condition = @/dp [0-9]+ match/
|
|
#dp_not_condition = @/no id match/
|
|
#pattern = @/([0-9]+-[0-9]+ ([0-9]+:){3}[0-9]+)/
|
|
#
|
|
#connection_check_ok = @/condition set is ok,then execute action set./
|
|
# Get form OS
|
|
|
|
}
|
|
|
|
$0~/ dp rept_type:[0-9]+, data:/ {
|
|
atime = match($0,/[0-9]{1,2}-[0-9]{1,2} ([0-9]{1,2}:){3}[0-9]{1,3}/) ? substr($0,RSTART,RLENGTH):null;
|
|
adps = match($0,/\{.+\}/) ? substr($0,RSTART,RLENGTH):null;
|
|
# print "atime:"atime,"adps:"adps
|
|
aLogJson = "{ \"time\":"atime", \"event\":\"dp report\", \"dps\":"adps"}"
|
|
# log2file(aLogJson)
|
|
}
|
|
|
|
$0~/rev id:\w+ cmd:\{.*\} type:0/ {
|
|
atime = match($0,/[0-9]{1,2}-[0-9]{1,2} ([0-9]{1,2}:){3}[0-9]{1,3}/) ? substr($0,RSTART,RLENGTH):null;
|
|
adps = match($0,/cmd:\{.+\} /) ? substr(substr($0,RSTART,RLENGTH),5,RLENGTH-5) : $0;
|
|
devMac = match($0,/rev id:\w+/) ? substr(substr($0,RSTART,RLENGTH),8) : null
|
|
# print $0
|
|
|
|
if((getline conditionLine) > 0){
|
|
isCondition = match(conditionLine,/(no id match|no dp match)/) ? "false" : match(conditionLine,/dp [0-9]+ match/) ? "true" : "unkown"
|
|
# print conditionLine
|
|
# print "isCondition:"isCondition
|
|
condition = "\"isCondition\":"isCondition
|
|
if (isCondition=="true"){
|
|
# conditionDp = match(conditionLine,/dp [0-9]+ match/) ? substr(conditionLine,RSTART,RLENGTH) : ""
|
|
conditionDp = match(conditionLine,/\] dp [0-9]+ match/) ? substr(substr(conditionLine,RSTART,RLENGTH),6,RLENGTH-11) : ""
|
|
condition = condition",\"conditionDp\":"conditionDp
|
|
}
|
|
}else{
|
|
print "no more line"
|
|
}
|
|
|
|
aLogJson = "{ \"time\":"atime", \"event\":\"linkage recv dp\", \"dps\":"adps",\"devMac\":\""devMac"\","condition"}"
|
|
log2file(aLogJson)
|
|
}
|
|
|
|
# $0~/dp [0-9]+ match/{
|
|
|
|
# }
|
|
|
|
$0~/condition set is ok,then execute action set\./ {
|
|
# print $0
|
|
atime = match($0,/[0-9]{1,2}-[0-9]{1,2} ([0-9]{1,2}:){3}[0-9]{1,3}/) ? substr($0,RSTART,RLENGTH):null;
|
|
aruleid = match($0,/scene:\w+,/) ? substr(substr($0,RSTART,RLENGTH),7,RLENGTH-7) : "false"
|
|
log2file("{ \"time\":"atime", \"ruleid\":\""aruleid"\",\"triggerNow\":\"true\"}")
|
|
}
|
|
|
|
END{
|
|
|
|
}
|
|
|
|
function matchRet(reg ,RSTART,RLENGTH){
|
|
#print reg
|
|
if(match($0,$reg)){
|
|
return substr($0,RSTART,RLENGTH)
|
|
}else{
|
|
return "Nothing Matched"
|
|
}
|
|
}
|
|
|
|
function log2file(logJson){
|
|
system("echo -e '"logJson"' >> /data/log_dir/mySimpleLog")
|
|
} |