博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sed 替换基础使用
阅读量:5772 次
发布时间:2019-06-18

本文共 827 字,大约阅读时间需要 2 分钟。

hot3.png

我们简单地使用sed替换文本中的内容 sed 's/dog/elephon/' testfile,就是感觉匹配上就行,而不是按照单词分割。

7b1235c9dc119fae77b3e7016c1e6b17187.jpg

s使用的方式,可以在后面添加flags操作,s/pattern/replacement/flags

  • 数字,表明新文本将替换第几处模式匹配的地方
  • g,表明新文本将会替换所有匹配的文本
  • p,表明原先行的内容要打印出来;
  • w file,将替换的结果写到文件中

比如sed 's/h/o/2' testfile

b349a681b317c3b632a859134d867d93013.jpg

p操作使用-n选项,可以打印与替换命令模式匹配的行,sed -n 's/dog2/dophine/p' testfile

d51cf461ccbf52f93a83c75c6bab0889b19.jpg

sed编辑器允许选择其他字符来作为替换命令中的字符串分隔符,sed -n 's!dog2!dophine!p' testfile 和上面的效果是一样的不然对于我们常常使用的正斜线(/),那么你就要写成(\/)这样的形式,还是挺头疼的。

如果只想将命令作用 于特定行或某些行,则必须用行寻址:

  • 以数字形式表示行区间
  • 用文本模式来过滤出行

sed编辑器会将文本流 中的第一行编号为1,然后继续按顺序为接下来的行分配行号  

试试将第二行的数据修改了,sed  '2s/h/o/' testfile

64b82e401a48da8281a0c63208628e824dc.jpg

当然可以加上很多行的修改 sed  '2,3s/h/o/' testfile

或者说想将命令作用到文本中从某行开始的所有行,使用美元符sed  '2,$s/h/o/' testfile

sed编辑器允许指定文本模式来过滤出命令要作用的行,格式:/pattern/command

比如使用这样的 sed  '/dog2/s/h/o/' testfile

94a15b7068630c9c2900a2afe63334d16d2.jpg

当然更加牛逼的功能是使用正则表达式,来达到更好的模式匹配的效果,比如简单点 sed -n  '/^The/s/h/o/p' testfile

557667088a473c3e30599f6cfe92b56758e.jpg

未完待续!!!

 

转载于:https://my.oschina.net/u/2277632/blog/2980565

你可能感兴趣的文章
Java利用httpasyncclient进行异步HTTP请求
查看>>
循环多少次? 【杭电--HDOJ-1799】 附题+具体解释
查看>>
linux系统终端命令提示符设置(PS1)记录
查看>>
C++运算符重载
查看>>
【Web】URI和URL,及URL的编码
查看>>
宿舍局域网的应用
查看>>
html代码究竟什么用途
查看>>
oracle的substr函数的用法
查看>>
QT 数据库编程四
查看>>
npm下载包时代理配置
查看>>
全球十大理论
查看>>
model.addAttribute("student",student)——渲染
查看>>
JavaWeb开发之普通图片验证码生成技术与算术表达式验证码生成技术
查看>>
python和pywin32实现窗口查找、遍历和点击
查看>>
第二章 概率图模型的基本原理
查看>>
Hadoop HDFS编程 API入门系列之路径过滤上传多个文件到HDFS(二)
查看>>
Nginx反向代理,负载均衡,redis session共享,keepalived高可用
查看>>
CentOS7 yum 安装git
查看>>
sublime text 3浅色主题
查看>>
数据结构之红黑树(三)——删除操作
查看>>