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

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

过于简单就不废话了。

复制代码
#!/bin/bash

conf_file=$1
flag=0
temp_file="__temp.xml"

if [ -f "${temp_file}" ];then
    rm "${temp_file}"
fi
while read line
do
    echo "${line}" | grep '<connection' > /dev/null
    if [ $? = 0 ];then
        flag=1
        echo "${line}"
        echo "${line}" >> "${temp_file}"
        continue
    fi
    echo "${line}" | grep '</connection' > /dev/null
    if [ $? = 0 ];then
        flag=0
        echo "${line}"
        echo "${line}" >> "${temp_file}"
        continue
    fi
    echo "${line}" | grep '<server' > /dev/null
    if [ $? = 0 -a ${flag} = 1 ];then
        flag=2
        echo "${line}"
        echo "${line}" >> "${temp_file}"
        continue
    elif [ $? = 0 -a ${flag} = 2 ];then
        continue
    fi
    if [ ${flag} = 0 ];then
        echo ${line} >> "${temp_file}"
    fi
done < ${conf_file}

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

比如:

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

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

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

相关推荐
坚果的博客15 小时前
鸿蒙PC三方库适配OAT.xml 与 SHA512SUM 解读:开源合规与源码校验
xml·开源·harmonyos
奇树谦20 小时前
YAML、XML、JSON、TOML、INI、CSV 全面对比:配置文件和数据交换到底该怎么选?
xml·json
南山丶无梅落2 天前
XXE漏洞
xml·漏洞·xxe·网安
小书房2 天前
Android UI为什么由XML转向Compose
xml·ui·compose·声明式ui
学编程的小程2 天前
配置范式演进:XML、JavaConfig 与 Spring Boot
xml·spring boot·后端
le1616163 天前
Android Compose基础布局——从传统XML的视角切入了解
xml·compose
XiYang-DING4 天前
【MyBatis】XML方式实现CRUD
xml·mybatis
祭曦念6 天前
ArkUI声明式UI入门:从XML到声明式的思维转变
xml·ui·鸿蒙
Meteors.7 天前
安卓源码阅读——01.grade设置binding为true时,xml如何进行映射
android·xml
程序员buddha8 天前
传统 Spring 框架,XML 配置 Bean 的方式
xml·java·spring