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命令替换字符串相关推荐

  1. linux sed 替换中文,Linux中使用sed命令替换字符串小结

    最近写了几个小脚本用到了sed命令,学了一下,顺便记下 sed替换的基本语法为: 复制代码 代码如下: sed 's/原字符串/替换字符串/' 单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字 ...

  2. Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)之二——只改变第一出现的那一行

    一.背景 在之前的文章中有介绍过<Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)> 但是这种方法存在一定的问题,就是假如某个变量在一个文件中出现两次,却只想更改 ...

  3. shell :linux sed 批量替换字符串

    linux sed 批量替换字符串 一月 21, 2014 ( No Comments ) Linux下批量替换多个文件中的字符串的简单方法.用sed命令可以批量替换多个文件中的字符串. 命令如下: ...

  4. linux sed替换文件,linux的sed命令替换文件

    linux下的sed是一个强大的编辑器工具,下面由学习啦小编为大家整理了linux的sed命令替换文件的相关知识,希望对大家有帮助! linux的sed命令替换文件 sed在Linux下是个强大的工具 ...

  5. Python 实现类似sed命令的字符串替换小程序

    背景 sed命令 sed 's/原字符串/新字符串' 单引号中间是s表示替换,原字符串就是要被替换掉的字符串,新字符串就是想要的字符串. 效果 在命令行输入python practice.py i 3 ...

  6. sed命令替换指定字符后不固定字符串,文本信息的替换删除

    sed主要用来处理文本内容的修改,文本的提取分割可以使用awk和cut命令,参考本人文章linux常用文本字符分割分析awk和cut命令 sed命令格式: sed [选项] '.../.../...' ...

  7. 通过sed命令替换批量文件中的字符串

    有时需要对目录下的多个文件中的字符串进行替换,如果手动逐个替换既费时又容易漏掉.此时可通过sed命令对指定目录下的所有文件进行操作. 假如将命令写在一个sh文件中,名字为replace_string_ ...

  8. [sed] linux sed 批量替换字符串-转

    比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做: sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl ...

  9. linux sed替换大小写,linux sed 批量替换字符串

    一月 21, 2014 ( NO COMMENTS ) Linux下批量替换多个文件中的字符串的简单方法.用sed命令可以批量替换多个文件中的字符串. 命令如下: sed -i "s/原字符 ...

最新文章

  1. python画直方图代码-Python绘制直方图及子图的方法分析(代码示例)
  2. LeetCode打卡 52八皇后Ⅱ53最大子序和54螺旋矩阵
  3. 今日arXiv精选 | 34篇顶会论文:CIKM/ ACL/ Interspeech/ ICCV/ ACM MM
  4. Java中的四种引用方式的区别
  5. Jenkins + Gitlab + Ansible--playbook 代码上线流程
  6. supermap iserver java 6r许可_SuperMap iserver Java 6R 在 linux 上安装和配置 | 学步园
  7. html提交表单使用python计算_教你使用Python实现新个税计算器
  8. Java中文件复制的一个汇总
  9. TeXstudio中文编码踩坑实录
  10. [入门]Ruby on Rails入门教程及开发工具选用
  11. HDU 4622 求解区间字符串中的不同子串的个数
  12. Azure China (4) 管理Azure China Storage Account
  13. 华为ensp命令大全_从零开始学习华为路由交换 | 配置接口IP
  14. mac android 模拟器启动,react-native使用脚本启动android模拟器(macos)
  15. 后进市场如何盈利?来看汉庭加盟经营逻辑
  16. HO-PLGA-COOR,酯封端聚(D,L-丙交酯-co-乙交酯)共聚物
  17. gl-opendrive插件(车俩3D仿真模拟自动驾驶)
  18. 【数据结构之二叉树】——二叉树的概念及结构,特殊的二叉树和二叉树性质
  19. b与b不同(b和B的区别)
  20. 【计算机视觉】pydensecrf在灰度图上的使用

热门文章

  1. sharding子查询_分页及子查询
  2. 英特尔已可在1平方毫米中塞下1亿个晶体管
  3. linux命令:显示当前目录命令、删除命令
  4. Java中retainAll方法使用
  5. HttpGet请求的几种方式(自用勿喷)
  6. SQL注释怎么写以及SQL分类
  7. drawstring 文本居中,如何在Java中居中drawString?
  8. Windows7文件夹背景终于可以更换啦
  9. 秋天的第一杯奶茶不够气派?试试秋天的第一个邮箱靓号@163.net
  10. 面向对象的 JavaScript:封装、继承与多态