| | |
| | | # 定义要操作的文件 |
| | | file="/tmp/device_status" |
| | | |
| | | # 生成临时文件 |
| | | temp_file=$(mktemp) |
| | | delete_pattern=$(mktemp) |
| | | cat $file |
| | | |
| | | # 获取需要删除的行号范围(前一行+当前行+后三行) |
| | | 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" |
| | | exit |
| | | |
| | | # 执行过滤并显示结果 |
| | | awk 'NR == FNR {del[$1]; next} !(FNR in del)' "$delete_pattern" "$file" | tee "$temp_file" |
| | | # # 生成临时文件 |
| | | # temp_file=$(mktemp) |
| | | # delete_pattern=$(mktemp) |
| | | |
| | | # 可选:如果要直接修改原文件,取消以下注释 |
| | | # mv "$temp_file" "$file" |
| | | # # 获取需要删除的行号范围(前一行+当前行+后三行) |
| | | # 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" |
| | | |
| | | # 清理临时文件 |
| | | rm "$delete_pattern" "$temp_file" |
| | | # # 执行过滤并显示结果 |
| | | # awk 'NR == FNR {del[$1]; next} !(FNR in del)' "$delete_pattern" "$file" | tee "$temp_file" |
| | | |
| | | # # 可选:如果要直接修改原文件,取消以下注释 |
| | | # # mv "$temp_file" "$file" |
| | | |
| | | # # 清理临时文件 |
| | | # rm "$delete_pattern" "$temp_file" |
| | | |
| | | |
| | | |