shell解决xml文本中筛选的问题

news/2025/2/11 21:54:09/

shell解决xml文本中筛选的问题,将xml文件中多余的配置删除掉,达到符合单一配置的结果。

过于简单就不废话了。

#!/bin/bashconf_file=$1
flag=0
temp_file="__temp.xml"if [ -f "${temp_file}" ];thenrm "${temp_file}"
fi
while read line
doecho "${line}" | grep '<connection' > /dev/nullif [ $? = 0 ];thenflag=1echo "${line}"echo "${line}" >> "${temp_file}"continuefiecho "${line}" | grep '</connection' > /dev/nullif [ $? = 0 ];thenflag=0echo "${line}"echo "${line}" >> "${temp_file}"continuefiecho "${line}" | grep '<server' > /dev/nullif [ $? = 0 -a ${flag} = 1 ];thenflag=2echo "${line}"echo "${line}" >> "${temp_file}"continueelif [ $? = 0 -a ${flag} = 2 ];thencontinuefiif [ ${flag} = 0 ];thenecho ${line} >> "${temp_file}"fi
done < ${conf_file}

然而在其他的解决方式中,也可以通过awk脚本直接将结果进行统一的处理

比如:

awk '!/<server ip=/{print;c=0}   /<server ip=/ && ++c==1{print}' xxx.xml > __temp.xml

可以自己找一个xml文本进行自我的体验。

真正的结果一定要自己体验,否则就没有意义。


http://www.ppmy.cn/news/1571252.html

相关文章

【Android】Android开发应用如何开启任务栏消息通知

Android开发应用如何开启任务栏消息通知 1. 获取通知权限2.编写通知工具类3. 进行任务栏消息通知 1. 获取通知权限 在 AndroidManifest.xml 里加上权限配置&#xff0c;如下。 <?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android…

半导体制造工艺讲解

目录 一、半导体制造工艺的概述 二、单晶硅片的制造 1.单晶硅的制造 2.晶棒的切割、研磨 3.晶棒的切片、倒角和打磨 4.晶圆的检测和清洗 三、晶圆制造 1.氧化与涂胶 2.光刻与显影 3.刻蚀与脱胶 4.掺杂与退火 5.薄膜沉积、金属化和晶圆减薄 6.MOSFET在晶圆表面的形…

海云安开发者智能助手(D10)全面接入DeepSeek,赋能开发者安全高效编码新范式

海云安正式宣布完成与DeepSeek&#xff08;深度求索&#xff09;的深度技术融合&#xff0c;旗下核心产品D10开发者智能助手全面接入DeepSeek R1模型。此次合作标志着海云安在"AI驱动开发安全"领域实现重要突破。数据显示&#xff0c;通过DeepSeek R1模型的优化与蒸馏…

Java怎么记录网络安全情报 java转网络安全

实验内容 掌握Socket程序的编写&#xff1b;掌握密码技术的使用&#xff1b;设计安全传输系统。 实验要求 要求一 结对实现中缀表达式转后缀表达式的功能 MyBC.java结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC.java 要求二 基于Java Socket实现…

Gitee AI上线:开启免费DeepSeek模型新时代

Gitee Al上线&#xff0c;并宣布开启免费DeepSeek模型的时代&#xff0c;这是一个非常值得关注的消息&#xff0c;因 为它标志着国内在AI领域的一个重要发展。DeepSeek模型是由阿里巴巴达摩院开发的&#xff0c;旨 在提供强大的自然语言处理(NLP)能力。下面是一些关于这一事件…

ES6具体有什么

在 ES6&#xff08;ECMAScript 2015&#xff09; 中&#xff0c;引入了许多新的特性和改进&#xff0c;旨在提升 JavaScript 的可读性和功能性。以下是一些重要的 ES6 特性&#xff0c;特别是你可能会在日常开发中使用到的&#xff1a; 1. let 和 const let&#xff1a;用于声…

ARM64 Linux 内核学习指南:从基础到实践

前言 ARM64 作为当今主流的处理器架构&#xff0c;被广泛应用于移动设备、嵌入式系统和服务器领域。学习 ARM64 在 Linux 内核中的实现&#xff0c;不仅有助于深入理解操作系统底层机制&#xff0c;还能提升在内核开发、驱动编写、虚拟化等领域的专业能力。 本指南面向对 Lin…

【C/C++】每日温度 [ 栈的应用 ] 蓝桥杯/ACM备赛

数据结构考点&#xff1a;栈 题目描述&#xff1a; 给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &#xff0c;其中 answer[i] 是指对于第 i 天&#xff0c;下一个更高温度出现在几天后。如果气温在这之后都不会升高&#xff0…