shell之实战应用一(查找xml文档中的关键字段)
前几天同事问我一个问题,说如下的文档中,如何把name后面的字段(红色框中的字段)单独打印出来?
其实这个很简单,先用sed过滤,然后用cut分割显示即可实现,如下:
sed -n '/name/p' a.xml | cut -d '"' -f 2
使用sed命令的name匹配(或者field也可以)行,然后用cut把"作为分割符取第2列即可
或者使用awk也可以实现:
awk -F '"' '$0~"name"{print $2}' a.xml #或者 awk 'BEGIN{FS="\""}$0~"name"{print $2}' a.xml
上面语句是把界定符放在了外面,使用参数标识
下面语句是把界定符放在了语句里面,因为双引号是特殊字符,所以使用反斜杠转义一下
但我同事说,这个可不止只有一条数据,如果是多条数据,会重复打印字段,部分数据如下:
这时我们需要对语句进行稍微的加工,如果使用sed,则需要如下操作:
sed -n '/name/p' b.xml | cut -d '"' -f 2 | sort |uniq
后面多加了俩个命令sort和uniq,sort是排序,uniq是去重,只有排序了才能去重,否则不生效。这里也可以把sort和uniq直接写成sort -u,当然如果需要反序,可以写成sort -ur
当然使用awk也是可以的,写成如下:
awk 'BEGIN{FS="\""}nameflag[$2]==$2{next}$0~"name"{print $2;nameflag[$2]=$2}' b.xml
我们这里加了一个数列来存储第二个字段,然后来比较第二个字段是否再出现,如果出现就跳过执行后面的行,这样就避免了重复
大家有什么更好的解决办法可以留言!
转载于:https://www.cnblogs.com/watertaro/p/9311449.html
shell之实战应用一(查找xml文档中的关键字段)相关推荐
- XML文档中的xmlns、xmlns:xsi和xsi:schemaLocation理解
java开发项目中,经常用到xml配置文件,比如web.xml.applicationContext.xml.pom.xml等.在这些文件中都有xmlns.xmlns:xsi和xsi:schemaLo ...
- Element 对象表示 XML 文档中的元素。
Element 对象 Element 对象表示 XML 文档中的元素.元素可包含属性.其他元素或文本.如果元素含有文本,则在文本节点中表示该文本. 重要事项:文本永远存储在文本节点中.在 DOM 处理 ...
- XML文档中的xmlns、xmlns:xsi和xsi:schemaLocation
文章转载自:https://yq.aliyun.com/articles/40353 相信很多人和我一样,在编写Spring或者Maven或者其他需要用到XML文档的程序时,通常都是将这些XML文档头 ...
- python合并word表格单元格_Python实战009:读取Word文档中的表格数据及表格合并问题解决...
同事最近被安排整理资料,主要工作室将文档中的表格数据提取出来并整理层Excel表格供我们FII刀具商城进行资料维护.由于刀具的种类繁多且规格无数,所以要处理的数据量相当的庞大.人工核对整理既费时又费力 ...
- Java为xml跟节点添加子节点_如何将xml节点作为第一个子节点插入Java中的另一个xml文档中?...
小编典典 如果事实证明我只是为您做功课,我会感到非常恼火. package com.akonizo.examples; import java.io.ByteArrayInputStream; imp ...
- mysql 将xml插入数据库_从xml文档中读取数据并插入mysql数据库中
// TODO: Add your control notification handler code here CMarkup xml; xml.Load("色谱案例表.xml" ...
- python 搜索pdf文件中的文字_使用python查找pdf文档中搜索字符串位于哪一页
我终于发现pyPDF可以帮上忙.我把它寄出去,以防它能帮助别人. (1)定位字符串的函数def fnPDF_FindText(xFile, xString): # xfile : the PDF fi ...
- idea的springboot项目的xml文档中查询语句有黄色背景
接下来介绍如何不显示黄色背景的方法: 1.File -- Settings (或者Ctrl + Alt + S 快捷键)打开设置界面: 2.然后找到 Editor -- Inspections : 3 ...
- Word控件Spire.Doc 【Table】教程(7): 如何在C#中用表格替换word文档中的文本
Spire.Doc for .NET 是一款专门对 Word 文档进行操作的 .NET 类库.在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建.编辑.转换和打印 Mic ...
最新文章
- mysql 5.7解压缩,Mysql5.7 windows解压缩ZIP版安装
- 小工匠聊架构-超高并发秒杀系统设计 04_流量削峰设计
- activepython win32com_activepython下载
- Spark练习 - 提交作业到集群 - submit job via cluster
- DivideMix: Salesforce提出使用半监督学习大幅改进含噪声标签的学习
- Django使用本机IP无法访问,使用127.0.0.1能正常访问
- 安装注册数据库管理工具
- 可可托海将打造研学旅游基地促经济发展
- Atitit 项目wechat微信截屏生成vcf通讯录384 个 384个人 42个节拍,平均每个8个人 技术点 im图像裁剪, ocr Tesseract Vcf格式 /wechatTel
- SQL注入实战 绕WTS-WAF
- 文件夹变exe怎么办
- HFSS15 win10安装
- Angular开发(三)-关于属性绑定与事件绑定
- android 文件预览(读取)
- OneDrive登录时出现问题· 请稍后重试。(错误代码: 0x8004de25)
- Springboot中cache的使用
- 火狐(firefox)调试移动端页面
- 织梦CMS仿站概述:快速理清仿站思路
- JS计算数组各数据所占百分比
- 买加智能销售系统-以科技赋能企业销售