sed+awk 导出xml内容

Elysium 2015-08-09 11:14:57
xml文件内容如:
1.aaa.xml
<AAA>
<A1 A="A" B="B" C="C" />
<A1 A="AA" B="BB" C="CC" />
......
</AAA>

2.bbb.xml
<BBB>
<B1 A="A" B="B" C="C" D="D" E="E"/>
<B1 A="AA" B="BB" C="CC" D="DD" E="EE"/>
......
</BBB>


导出成文本文件 ,如
1. aaa.txt
#A,B,C
#AA,BB,CC
$A,B,C,D,E
$AA,BB,CC,DD,EE
即把xml文件中的键值内容拼接在一起,并合成一个文件

2. bbb.txt
#A,B,C+A,B,C,D,E
#AA,BB,CC+AA,BB,CC,DD,EE
即把xml文件中的以A字段键值内容相同的两行拼接在一起,并合成一个文件
...全文
239 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Elysium 2015-08-11
  • 打赏
  • 举报
回复
就是以KeyValue对A来说,A等于“A"的放在一行中,等于”AA“的放到另一行,以此类推
奔跑的路 2015-08-11
  • 打赏
  • 举报
回复

cat aaa.xml | grep -E "<.*/>" | awk '{$1="";$NF="";print}' | awk -F'"' 'ORS=" "{for(i=0;i++<=NF;)if(i%2==0){print $i"\t"}}{print "\n"}' | sed 's/^[ ]*/#/g' > aaa.txt

cat bbb.xml | grep -E "<.*/>" | awk '{$1="";$NF="";print}' | awk -F'"' 'ORS=" "{for(i=0;i++<=NF;)if(i%2==0){print $i"\t"}}{print "\n"}' | sed 's/^[ ]*/$/g' >> aaa.txt
这可以帮你完成第一步,第二步中的“键值内容相同”是什么意思
Elysium 2015-08-10
  • 打赏
  • 举报
回复
能给提示下吗,sed总是不通过
Elysium 2015-08-10
  • 打赏
  • 举报
回复
嗯,知道但没用过,正在研究中
FightForProgrammer 2015-08-10
  • 打赏
  • 举报
回复
自己可以用这两个工具处理啊。都知道啥工具了还不想动手么

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧