问题:最近需要编辑一些xml文件,需求是这样的,test.xml中有语句:name = “abc”,需要将其替换为name=("abc")。

在网上搜索到一些方法后决定用sed工具来实现,方法如下:

1、安装windows版本sed:

去sourceforge上下载sed.exe及其依赖库libiconv2.dll、libintl3.dll、regex2.dll放在同一目录

2、编辑sed脚本xml.sed,内容如下:

s/name[ ]*=[ ]*/name=_(/g
s/\(("[^"]*\)"/\1")/g

3、然后利用命令行:

sed -f xml2txt.sed test.XML >tmpc\test.txt

来替换test.xml中的内容,并将结果输出到test.txt中。该命令行可以写到批处理中,一次处理多个xml文件。

问:为什么不直接写一行sed s/// test.xml,而要单独写一个sed脚本呢?

答:1、若sed的命令中有引号或空格等特殊字符时,整个命令要用引号括起来,且命令内部的特殊字符要转义,例如:sed "s/\"//" test.xml;

  2、由于要避免sed的贪婪匹配特性,需要用[^"]来匹配引号内部的内容。

由于以上两个原因,若直接在命令行里使用sed命令,需要这么写:sed "s/name[ ]*=[ ]*\(\"[^\"]\"\)/name=(\1)" test.xml。

然后问题就来了,怎么让sed正确解释[^\"]为我们想要的结果(反正我试了n遍都不行 T-T)?

我不知道所以用了上述调用脚本的方法,还请高手为我解答。

转载于:https://www.cnblogs.com/nixiaoxianggong/p/4986943.html

sed for windows 双引号内部内容的替换相关推荐

  1. linux sed 单引号,如何在SED中转义双引号和单引号? (bash)

    转义双引号ca在sed中绝对有必要:例如,如果在整个sed表达式中使用双引号(因为在使用shell变量时需要执行此操作). 下面是对SED逃逸倒是一个例子,但也捕获在bash一些其他的报价问题: # ...

  2. python提取两个引号中的内容,怎样用 Python 提取不在双引号的内容?

    三叔2016-11-11 13:30:281楼 import re a ='Peter d,, 13tsddgjlsv >>bgeghg \n"desfegeivm,x,wb.r ...

  3. 证明spring中property name=这个双引号的内容只与setter方法有关,与一个类定义的字段和getter方法无关...

    证明如下: 思路定义两个实体类每个实体类的成员变量(字段)名和setter 和getter的名字都不一样: 原因是:bean的声明周期的原因:有一步是:注入属性. 其中一个类引用了另一个类. 被引用类 ...

  4. linux shell sed 单引号, 双引号,反引号, 斜杆, 反斜杆(‘ “ ` / \)

    前言: 来看这个内容的,估计和我一样被绕晕了, 找不到规则.其实这是shell比较灵活导致的. 其实遵循如下原则可以避免莫名其妙的意外(少掉头发). 1) 坚决不使用反引号(`),  坚决使用$() ...

  5. sed -i 单引号中嵌套双引号_【linux】Shell 单引号#x27;#x27; 双引号quot;quot; 反引号`` 和$()的区别和用法...

    发行版为 red hat 以及centos,其他发行版未经验证 部分段落摘抄自网络,侵删 转载请注明出处 感谢点赞 单引号''和双引号"" 两者都是解决变量中间有空格的问题. 在b ...

  6. PHP 单引号与双引号的区别(总结)

    看好多代码有时候用单引号或双引号实现包含字符串的内容,其实简单个概括下双引号中的变量可以解析,单引号就是绝对的字符串. 1.定义字符串  在PHP中,字符串的定义可以使用单引号,也可以使用双引号.但是 ...

  7. c字符串中包含双引号_零基础学Python:一文看懂数字和字符串

    来源:大数据DT 本文约2000字,建议阅读6分钟 数据类型是构成编程语言语法的基础.[ 导读 ]数据类型是构成编程语言语法的基础.不同的编程语言有不同的数据类型,但都具有常用的几种数据类型.Pyth ...

  8. php双引号表示什么,PHP中的单引号和双引号字符串有什么区别?

    PHP中的单引号和双引号字符串有什么区别? 我不是PHP编程的专家,但我有点困惑为什么我在PHP中看到一些代码用单引号放入字符串,有时用双引号. 我只是在.NET或C语言中知道,如果它是单引号,这意味 ...

  9. linux shell中的单引号与双引号的区别(看完就不会有引号的疑问了)(转)

    tips: ============================= IFS - LINUX字段分隔符,内部字段分隔符 IFS(Internal Field Seperator)在Linux的she ...

最新文章

  1. zencart安全辅助小脚本
  2. python要不要装pycharm-subli(python要不要装pycharm)
  3. java正则表达式:查找所有{XXX}
  4. 操作系统中的内存分配
  5. 响应式编程 函数式编程_函数式编程的基本原理简介
  6. 架构师速成6.4-开发框架
  7. sql python r_Mode Studio,支持Python,R和SQL的云数据分析利器
  8. java还原混淆代码_飘云阁安全论坛如何还原混淆加密的JAVA代码 - Powered by Discuz!...
  9. python文本自动伪原创_现在有哪些好用的伪原创工具?
  10. DES 加密解密方法
  11. 【实践与问题解决30】苹果手机如何取消使用切换控制时候弹出的重要通知
  12. pads 打开AD 软件的pcb——两种方式
  13. 计算机科学导论第五版第二章答案,计算机科学导论样题1答案
  14. 多智能体深度强化学习综述与批判——Matthew E. Taylor
  15. ACM-ICPC 2018 南京赛区网络预赛:E :AC Challenge题解
  16. 【算力网络】算力网络的技术创新——运营服务关键技术
  17. 技术类人员的职业发展方向
  18. 公司邮箱哪个安全?安全邮箱格式怎么填?公司邮箱号码大全
  19. 最小表示串 学习【最小表示串 学习(粗)】
  20. KEIL5配置astyle

热门文章

  1. 苹果市场占有率_三星、华为、苹果位列前三!外媒公布2020年Q2全球智能手机销量排行榜...
  2. Robust Point Cloud Registration Framework Based on Deep Graph Matching (RGM) 简略分析
  3. 【C++】细说C++中的数组之“静态”数组
  4. 深度学习的实用层面 —— 1.3 机器学习基础
  5. SQL避免IN 和 NOT IN
  6. 基于人机交互设备测量用户情绪。
  7. Matlab--存储和加载.mat文件形式的数据
  8. 如何制作一个类似Tiny Wings的游戏 Cocos2d-x 2 1 4
  9. 算法竞赛中的随机数产生和断言
  10. vista系统服务器,Vista系统中怎么设置IIS服务器