sed命令替换字符包含斜杠\,引号的处理方法

在字符替换中,可能会遇见引号,“/”等的替换,这时应该注意,sed的命令原型是:

sed -i  "s/oldstring/goalstring/g" file

如果一个路径是data/path/abc,现在要将此路径换成一个字符串cde

但是这时跟在s后边的其实是分隔符,用以将oldstring替换成cde;他可以使用任意字符,这时如果字符串中有“/”,就会发生混乱,在这个时候可以用#当做分隔符,就变成

sed -i "s#abc#cde#g" file

这时如果abc中包含“/”就可以随便替换了;

引号的替换:

需要将引号转义,使用反斜杠“\”,比如替换" ‘ ‘div‘ ‘ ",如果需要将它替换成‘div‘ ;可以使用sed -i s#\"\‘\‘#\‘#g就能替换了。

时间: 2024-10-15 20:42:12

sed命令替换字符包含斜杠\,引号的处理方法的相关文章

[Z] sed命令替换换行符

sed命令替换换行符 sed流编辑器是shell中处理文本内容的一大利器.sed命令从文本流中读取一行文本到模式空间中进行相应的命令.或脚本处理,因此在处理换行符时会有点特殊. 下面的命令可以很正确的执行: echo "a,b,c,d" |sed 's/,/\n/g' 但是如果我想恢复回来,下面的命令却没有效果了: echo "a,b,c,d" |sed 's/,/\n/g'|sed 's/\n/,/g' 这跟sed的行处理方式有关,sed读取一行时,会先把换行符去

Linux中使用sed命令替换字符串小结

sed替换的基本语法为: sed 's/原字符串/替换字符串/' 单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字符需要使用反斜线”\”进行转义,但是单引号”‘”是没有办法用反斜线”\”转义的,这时候只要把命令中的单引号改为双引号就行了,例如: sed "s/原字符串包含'/替换字符串包含'/" //要处理的字符包含单引号 命令中的三根斜线分隔符可以换成别的符号,这在要替换的内容有较多斜线是较为方便,只需要紧跟s定义即可,例如换成问号”?”: sed 's?原字符串?替换字符串

在shell中使用sed命令替换/为\/

sed命令相关: https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html https://www.cnblogs.com/DragonFire/p/6600121.html 这里我们要做的功能是: 输入一个目录"/data/data8" 在shell中将其变换为"\/data\/data8" (这是为了能在shell后边的sed命令中直接使用) 先来看看直接使用命令如何实现: echo &q

js替换字符中的斜杠反斜杠

var reg=/\\|\//g; var a="a\a\\a/b" alert(a.replace(reg,"-"));

window下sed命令替换文件

替换文件 md d:\temp_2016110 copy D:\test\start.bat d:\temp_20161108\start1.bat copy D:\test\start.bat d:\temp_20161108\start2.bat D:\tool\sed\sed.exe -i "s/旧的/新的/g" D:\test\start.bat D:\tool\sed\sed.exe -i "s/旧的/新的/g" D:\test\start.bat

SpringMVC中用@ParamVariable传递的参数包含斜杠(/)时,匹配不了报404错误的解决方案

今天做网站[标签]筛选功能时,出现了这么个奇葩的问题. 我是直接通过<a>标签中href来跳转的,url中包含汉字 <a href="/tags/标签A">标签A</a> 后台代码是这样的: @RequestMapping(value = "/tags/{tagname}") public String tags(@PathVariable String tagname) { // ISO-8859-1 ==> UTF-8

Java,JavaScript中斜杠和反斜杠的替换

Java: 在不同的系统中,路径的分隔符不同,故需要做出判断,并切换分隔符; String类中replaceAll方法如下: String.replaceAll(String regex,String replacement),replaceAll() 方法要用 4 个反斜杠,表示一个反斜杠: 1. java 把字符串中的反斜杠(\)替换成双斜杠(\\) replaceAll里面用的是正则表达式,所以字符串转义一次,正则转义一次,所以一个斜扛要写4个,如:replaceAll( "\\\\ &q

用cp命令拷贝文件,源目录后带不带斜杠的区别

当我还是Linux超级傻白的时候,需要拷贝一个很大的数据集,然后再拷贝源文件夹的后面跟了一个前倾斜杠,然后就发现居然拷贝的是整个文件夹里的东西,而不是文件夹本身.事儿倒是不大,我重新建一个文件夹,把这些东西挪进去就行了.后来,等我记住这一招后,发现有的时候居然也不是这样.于是,做做实验,干脆搞搞清楚. 两个文件夹,各自内容如下: 使用命令cp –R dir_src/ dir_target后,结果如下: 重做一遍,使用cp –R dir_src dir_target后,结果如下: 于是我就记住了这

[Asp.net]c#中的斜杠和反斜杠

引言 在外地出差,给客户部署项目,三家做的项目要在一起集成,这就造成数据格式不同,路径中的斜杠和反斜杠造成了很大的问题. 查了一下这方面的资料,这里做一些记录,算是一个小结吧. 正斜杠(/)与反斜杠(\)总结 正斜杠/表示除法,分隔.在windows系统中通常用来分隔命令行参数,/表示选项等.不能作为文件名. 反斜杠\,在windows系统中用来表示目录. 而在unix系统中,/表示目录.由于web遵循unix命名,所以在网址(URL)中,/表示目录. C#中反斜杠\与斜杠/ 转移字符路径的问题