sed for windows 双引号内部内容的替换
问题:最近需要编辑一些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 双引号内部内容的替换相关推荐
- linux sed 单引号,如何在SED中转义双引号和单引号? (bash)
转义双引号ca在sed中绝对有必要:例如,如果在整个sed表达式中使用双引号(因为在使用shell变量时需要执行此操作). 下面是对SED逃逸倒是一个例子,但也捕获在bash一些其他的报价问题: # ...
- python提取两个引号中的内容,怎样用 Python 提取不在双引号的内容?
三叔2016-11-11 13:30:281楼 import re a ='Peter d,, 13tsddgjlsv >>bgeghg \n"desfegeivm,x,wb.r ...
- 证明spring中property name=这个双引号的内容只与setter方法有关,与一个类定义的字段和getter方法无关...
证明如下: 思路定义两个实体类每个实体类的成员变量(字段)名和setter 和getter的名字都不一样: 原因是:bean的声明周期的原因:有一步是:注入属性. 其中一个类引用了另一个类. 被引用类 ...
- linux shell sed 单引号, 双引号,反引号, 斜杆, 反斜杆(‘ “ ` / \)
前言: 来看这个内容的,估计和我一样被绕晕了, 找不到规则.其实这是shell比较灵活导致的. 其实遵循如下原则可以避免莫名其妙的意外(少掉头发). 1) 坚决不使用反引号(`), 坚决使用$() ...
- sed -i 单引号中嵌套双引号_【linux】Shell 单引号#x27;#x27; 双引号quot;quot; 反引号`` 和$()的区别和用法...
发行版为 red hat 以及centos,其他发行版未经验证 部分段落摘抄自网络,侵删 转载请注明出处 感谢点赞 单引号''和双引号"" 两者都是解决变量中间有空格的问题. 在b ...
- PHP 单引号与双引号的区别(总结)
看好多代码有时候用单引号或双引号实现包含字符串的内容,其实简单个概括下双引号中的变量可以解析,单引号就是绝对的字符串. 1.定义字符串 在PHP中,字符串的定义可以使用单引号,也可以使用双引号.但是 ...
- c字符串中包含双引号_零基础学Python:一文看懂数字和字符串
来源:大数据DT 本文约2000字,建议阅读6分钟 数据类型是构成编程语言语法的基础.[ 导读 ]数据类型是构成编程语言语法的基础.不同的编程语言有不同的数据类型,但都具有常用的几种数据类型.Pyth ...
- php双引号表示什么,PHP中的单引号和双引号字符串有什么区别?
PHP中的单引号和双引号字符串有什么区别? 我不是PHP编程的专家,但我有点困惑为什么我在PHP中看到一些代码用单引号放入字符串,有时用双引号. 我只是在.NET或C语言中知道,如果它是单引号,这意味 ...
- linux shell中的单引号与双引号的区别(看完就不会有引号的疑问了)(转)
tips: ============================= IFS - LINUX字段分隔符,内部字段分隔符 IFS(Internal Field Seperator)在Linux的she ...
最新文章
- zencart安全辅助小脚本
- python要不要装pycharm-subli(python要不要装pycharm)
- java正则表达式:查找所有{XXX}
- 操作系统中的内存分配
- 响应式编程 函数式编程_函数式编程的基本原理简介
- 架构师速成6.4-开发框架
- sql python r_Mode Studio,支持Python,R和SQL的云数据分析利器
- java还原混淆代码_飘云阁安全论坛如何还原混淆加密的JAVA代码 - Powered by Discuz!...
- python文本自动伪原创_现在有哪些好用的伪原创工具?
- DES 加密解密方法
- 【实践与问题解决30】苹果手机如何取消使用切换控制时候弹出的重要通知
- pads 打开AD 软件的pcb——两种方式
- 计算机科学导论第五版第二章答案,计算机科学导论样题1答案
- 多智能体深度强化学习综述与批判——Matthew E. Taylor
- ACM-ICPC 2018 南京赛区网络预赛:E :AC Challenge题解
- 【算力网络】算力网络的技术创新——运营服务关键技术
- 技术类人员的职业发展方向
- 公司邮箱哪个安全?安全邮箱格式怎么填?公司邮箱号码大全
- 最小表示串 学习【最小表示串 学习(粗)】
- KEIL5配置astyle
热门文章
- 苹果市场占有率_三星、华为、苹果位列前三!外媒公布2020年Q2全球智能手机销量排行榜...
- Robust Point Cloud Registration Framework Based on Deep Graph Matching (RGM) 简略分析
- 【C++】细说C++中的数组之“静态”数组
- 深度学习的实用层面 —— 1.3 机器学习基础
- SQL避免IN 和 NOT IN
- 基于人机交互设备测量用户情绪。
- Matlab--存储和加载.mat文件形式的数据
- 如何制作一个类似Tiny Wings的游戏 Cocos2d-x 2 1 4
- 算法竞赛中的随机数产生和断言
- vista系统服务器,Vista系统中怎么设置IIS服务器