| | |
| | | # 定义要操作的文件 |
| | | 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 |
| | | |
| | | # # 生成临时文件 |
| | | # 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" > $temp_file |
| | | num=`wc -l < $temp_file` |
| | | if [ $num -gt 2 ] |
| | | then |
| | | sed -i '$d' $temp_file |
| | | sed -i '$d' $temp_file |
| | | echo "} |
| | | ]" >> $temp_file |
| | | else |
| | | # 文件行数不大于2 |
| | | echo "[]" > $temp_file |
| | | fi |
| | | cat $temp_file |
| | | # 可选:如果要直接修改原文件,取消以下注释 |
| | | # mv "$temp_file" "$file" |
| | | # # 执行过滤并显示结果 |
| | | # awk 'NR == FNR {del[$1]; next} !(FNR in del)' "$delete_pattern" "$file" | tee "$temp_file" |
| | | |
| | | # 清理临时文件 |
| | | rm "$delete_pattern" "$temp_file" |
| | | # # 可选:如果要直接修改原文件,取消以下注释 |
| | | # # mv "$temp_file" "$file" |
| | | |
| | | # # 清理临时文件 |
| | | # rm "$delete_pattern" "$temp_file" |
| | | |
| | | |
| | | |