wuwei
2025-05-30 9084e3393212d75a758c8e6a28c665ddcc5fc03b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/sh
# 查询设备通讯状态
echo -en "Content-type: text/html; charset=utf-8\n\n"
#*****************************************************
source ../bin/env.sh
 
db="../bin/db"
 
 
# 定义要操作的文件
file="/tmp/device_status"
 
# 生成临时文件
temp_file=$(mktemp)
delete_pattern=$(mktemp)
 
# 获取需要删除的行号范围(前一行+当前行+后三行)
awk '/^[[:space:]]*"id"[[:space:]]*:[[:space:]]*"25[67]"[[:space:]]*,/ {
    start = NR - 1 > 0 ? NR - 1 : 1
        end = NR + 3
            for (i = start; i <= end; i++) 
                    print i
                    }' "$file" | sort -nu > "$delete_pattern"
                    
                    # 执行过滤并显示结果
                    awk 'NR == FNR {del[$1]; next} !(FNR in del)' "$delete_pattern" "$file" | tee "$temp_file"
                    
                    # 可选:如果要直接修改原文件,取消以下注释
                    # mv "$temp_file" "$file"
                    
                    # 清理临时文件
                    rm "$delete_pattern" "$temp_file"