sed命令替换字符串
sed命令替换字符串
使用sed命令可以直接替换文件中的字符串,在应用中比较普遍
替换字符串的一般格式为:
sed 's/aaa/bbb/g'
其中s表示替换filename文件中每行的第一个匹配到的字符串,如果要替换前三行匹配到的字符串,可以修改成sed '3s/aaa/bbb/g',以此类推;
sed -i可以直接修改文件中的内容sed -i 's/aaa/bbb/g' filename
aaa、bbb可以修改为变量,但需要用单引号扩起来sed -i 's/'$aaa'/'$bbb'/g' filename;
同时执行两种替换规则sed -i 's/aaa/bbb/g;s/ccc/ddd/g' filename,中间用分号隔开;
如果替换到的字符串中包含和sed中一样的分隔符,那么就必须修改当前的分隔符。例如替换字符串中如果包含斜杠/,那么命令要修改为:sed -i 's#aaa#bbb#g' filename, #可以替换成其它的符号,以此类推,sed会把s后面的第一个字符作为分隔符;
sed替换变量命令在网上搜罗一下大概有四种:
1、eval sed 's/$a/$b/g' filename
这个命令在实际运用中没有使用过
2、sed "s/$a/$b/g" filename
这种方式把sed里面的单引号改为双引号,从而可以直接使用变量,这种方式使用比较普遍
3、sed 's/'$a'/'$b'/g' filename
把变量名称用单引号包裹起来,这种方式使用也较多
4、sed s/$a/$b/g filename
这个命令在实际运用中没有使用过
需要注意的是,双引号的拓展作用在使用变量时是无效的。例如在替换的字符串中如果包含斜杠"/",此时使用变量来替换就会出现问题,必须要修改sed的分隔符:
字符串aa="123abc/qqq"
sed -i "s/$aa/bb/g" filename
此时直接使用这个命令sed是会报错的,即便给字符串aa加上转义:aa="123abc\/qqq",把变量作为整体也无效:
sed -i "s/${aa}/bb/g" filename
只能修改sed中的分隔符为其它字符:
sed -i "s?$aa?bb?g" filename
这个时候就不会报错了,sed的分隔符成了?,不会与字符串中的/冲突。
sed命令替换字符串相关推荐
- linux sed 替换中文,Linux中使用sed命令替换字符串小结
最近写了几个小脚本用到了sed命令,学了一下,顺便记下 sed替换的基本语法为: 复制代码 代码如下: sed 's/原字符串/替换字符串/' 单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字 ...
- Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)之二——只改变第一出现的那一行
一.背景 在之前的文章中有介绍过<Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)> 但是这种方法存在一定的问题,就是假如某个变量在一个文件中出现两次,却只想更改 ...
- shell :linux sed 批量替换字符串
linux sed 批量替换字符串 一月 21, 2014 ( No Comments ) Linux下批量替换多个文件中的字符串的简单方法.用sed命令可以批量替换多个文件中的字符串. 命令如下: ...
- linux sed替换文件,linux的sed命令替换文件
linux下的sed是一个强大的编辑器工具,下面由学习啦小编为大家整理了linux的sed命令替换文件的相关知识,希望对大家有帮助! linux的sed命令替换文件 sed在Linux下是个强大的工具 ...
- Python 实现类似sed命令的字符串替换小程序
背景 sed命令 sed 's/原字符串/新字符串' 单引号中间是s表示替换,原字符串就是要被替换掉的字符串,新字符串就是想要的字符串. 效果 在命令行输入python practice.py i 3 ...
- sed命令替换指定字符后不固定字符串,文本信息的替换删除
sed主要用来处理文本内容的修改,文本的提取分割可以使用awk和cut命令,参考本人文章linux常用文本字符分割分析awk和cut命令 sed命令格式: sed [选项] '.../.../...' ...
- 通过sed命令替换批量文件中的字符串
有时需要对目录下的多个文件中的字符串进行替换,如果手动逐个替换既费时又容易漏掉.此时可通过sed命令对指定目录下的所有文件进行操作. 假如将命令写在一个sh文件中,名字为replace_string_ ...
- [sed] linux sed 批量替换字符串-转
比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做: sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl ...
- linux sed替换大小写,linux sed 批量替换字符串
一月 21, 2014 ( NO COMMENTS ) Linux下批量替换多个文件中的字符串的简单方法.用sed命令可以批量替换多个文件中的字符串. 命令如下: sed -i "s/原字符 ...
最新文章
- python画直方图代码-Python绘制直方图及子图的方法分析(代码示例)
- LeetCode打卡 52八皇后Ⅱ53最大子序和54螺旋矩阵
- 今日arXiv精选 | 34篇顶会论文:CIKM/ ACL/ Interspeech/ ICCV/ ACM MM
- Java中的四种引用方式的区别
- Jenkins + Gitlab + Ansible--playbook 代码上线流程
- supermap iserver java 6r许可_SuperMap iserver Java 6R 在 linux 上安装和配置 | 学步园
- html提交表单使用python计算_教你使用Python实现新个税计算器
- Java中文件复制的一个汇总
- TeXstudio中文编码踩坑实录
- [入门]Ruby on Rails入门教程及开发工具选用
- HDU 4622 求解区间字符串中的不同子串的个数
- Azure China (4) 管理Azure China Storage Account
- 华为ensp命令大全_从零开始学习华为路由交换 | 配置接口IP
- mac android 模拟器启动,react-native使用脚本启动android模拟器(macos)
- 后进市场如何盈利?来看汉庭加盟经营逻辑
- HO-PLGA-COOR,酯封端聚(D,L-丙交酯-co-乙交酯)共聚物
- gl-opendrive插件(车俩3D仿真模拟自动驾驶)
- 【数据结构之二叉树】——二叉树的概念及结构,特殊的二叉树和二叉树性质
- b与b不同(b和B的区别)
- 【计算机视觉】pydensecrf在灰度图上的使用