sed的三种用法
1.shell命令行输入命令
 格式:sed [选项] ’sed命令‘ 输入文件

2.将sed命令出入脚本文件后,sed命令调用
格式: sed [选项] -f sed脚本文件 输入文件

3.将sed命令插入脚本文件后,三种脚本文件可执行,直接执行脚本文件

格式:./sed脚本文件 输入文件

sed选项
  -n  不显示所有行到屏幕(标准输出)
  -e  表示将下一个字符串解析为sed编辑命令,如果只传递一个编辑      命令给sed,-e选项可以省略
  -f  表示正在调用sed脚本文件

sed的两种定位文本方式
1.使用行号,指定一行,或指定行号范围
2.使用正则表达式

定位文本
x   x为指定行号
x,y 指定从x到y的行号范围
/pattern/   出现包含模式的行
/pattern/pattern/  查询包含两个模式的行
/pattern/,x      从x号到与pattern的匹配行之间的行
x,y!       查询不包括x和y行号的行

sed编辑命令
  p   打印匹配行
  =   打印文件行号
  a\  在定位行号之后追加文本信息
  i\  在定位行号之前插入文本信息
  d   删除定位行
  c\  用新文本替换相应模式
  r   从另一个文件中读文件
  w   将文本保存到一个文件
  y   变换字符
  q   第一个模式匹配完成后退出
  l   显示与八进制ASCII码等价的控制字符
  {}  在定位行执行的命令组
  n   地区下一个输入行,用下一个命令处理新的行
  h   将模式缓冲区的内容复制到保持缓冲区
  H   将模式缓冲区的文本追加到保持缓冲区
  x   互换模式缓冲区和保持缓冲区的内容
  g   将保持缓冲区的内容复制到模式缓冲区
  G   将保持缓冲区的内容追加到模式缓冲区

*** 一、文本选项
1.sed命令的-n选项   --不显示所有行到屏幕(标准输出)
例子
  sed -n '1p' input  只显示文本第一行
  sed '1p' input     不止打印第一行,还打印文本的全部内容
 
  sed命令打印范围行
例子
  sed -n ’3,6p' input  打印文本的3到6行

打印匹配模式 -n ‘/ca/p' input  打印文本中含有ca的行

2.sed命令的-e选项    --使用多个编辑命令
例子
    sed -n '/ca/=' input      打印含有ca的行号

例子
    sed -n -e '/ca/p' -e '/ca/=' input 打印行有ca的行及行号

注意:不支持同时带多个编辑命令的用法
   如 sed -n '/ca/p=' input

3.sed命令的-f选项
  sed ’指定地址a\text' 输入文件
例子:
    sed '/file:/a\i love you.' input
      在文本input中含有file:的行后面另起一行添加i love you(作为一行)

脚本执行追加   --在匹配行的后面插入一行内容
   touch zhuijia.sed
   #!/bin/sed -f   #调用sed脚本
    /file:/a\      # a\表示此处换行添加文本
 #所添加的文本内容
   l like you.\    #"\"符号表示换行
   l love you.

执行脚本
   给执行权限
  ./zhuijia.sed input

+++++++++++++++++++++++++++++++++++++++++++++++

***二、文本定位

1.匹配元字符
  例子
   sed -n '/\./p' input  匹配文本中含有”.“的行

2.使用元字符进行匹配
  例子
   sed -n '$p' input  匹配文本最后一行
   sed -n '/.*bus/p' input  匹配包含bus结尾的任意字符串

3.!符号
  例子
  sed -n '2,10!p' input  匹配不再2到十行的所有行
 
4.使用行号与关键字匹配限定行范围
 例子
 sed -n '/ca/,$p' input 打印与ca的匹配行到最后一行
 sed -n '3,/ca/p' input 打印第三行到ca的匹配行

+++++++++++++++++++++++++++++++++++++++++++

***三、sed编辑命令
 1.插入文本    --在匹配行的前面插入一行内容
   格式:sed '指定地址i\text' 输入文件
  例子
  sed脚本
  #!/bin/sed -f
   /file:/i\     #i\表示此处换行插入文本
    we insert a new line.  #插入的文本内容
作用:在file:所在的行的上一行插入 we insert a new line.这一      行内容

2.修改文本   --匹配的文本行用新文本替代
   格式:‘指定地址c\text' 输入文件
   例子
   #!/bin/sed -f
     /file:/c\       #c\表示此处换行修改文本
    We modify this line    #修改的文本内容
作用:   将file:所在的文本行替换成  We modify this line文本         行

3.删除文本   --删除指定行或指定行范围
   格式:删除地址d
   例子
   sed '1d' input  删除文本的第一行
   sed '$d' input  删除文本的最后一行
   sed '1,10d' input  删除文本的1到10行
   sed '/[Cc][Ee]/d'  删除含有不区分大小写的关键字ce的所有行
  
 4.替换文本
   格式:s/被替换的字符串/新字符串/[替换选项]
    替换选项
    g  表示替换文本中所有出现被替换字符串之处
    p   与-n选项结合,至打印替换行
    w文件名  表示将输出定向到一个文件

1>p选项
   命令格式:sed -n 's/被替换的字符串/新字符串/Np' 输入文件
    没有-n  显示替换了字符串后的文本
    没有p   不显示任何内容
    都有     只显示替换了字符串的行
     Np     替换每行的第N次匹配
   例子   
   sed 's/ca/ce/p'    input   将文本中含有ca的行中的第一个ca                              替换成ce,并将替换后的文本显示
   sed -n 's/ca/ce/' input    将文本中含有ca 的行中的第一个                              ca 替换成ce,不显示文本
   sed -n 's/ca/ce/p' input   将文本中含有ca的行中第一个ca替                              换成ce,只显示替换的行
   sed -n 's/ca/ce/2p input   将文本中国含有ca的行中的第二个                              ca替换成ce,只显示替换的行

2>g选项
   命令格式:sed -n 's/被替换的字符串/新字符串/g' 输入文件
     没有g   只替换每行第一个可以替换的字符串
      有g     替换每行所有可以替换的字符串

例子
    sed -n 's/ca/ce/g' 将文本中含 有ca的行的所有ca替换成ce,                       只显示替换的行

3>w选项
     命令格式:se -n '被替换的字符串/新字符串/w output' input
 
   例子
   sed -n 's/ca/ce/w output' input  将文本中的ca替换成ce,并将结果写                                     入output文件

4>文本替换结合&    --将被替换的字符串保存到&中
   例子
    sed  -n '/ca/(&)/p' input  ==sed -n '/ca/(ca)/p'

5.写入一个新文件
    命令格式:指定地址 w 文件名
    例子
    sed -n '1,5 w output' input 将文本input中的1到5行写入到output中
    sed -n '/ca/w output' input 将文本input中匹配ca的行写入到output中
   
  6.从文件中读入文本  ---将其他文件中的文本读入并附加到指定地址之后
    格式:指定地址 r 文件名
    例子
     sed '/ca/r otherfile' input  将otherfile文件中的所有文本插入到                                    input文本中匹配ca的文本行后面

7.退出命令
   格式:指定地址 q
   例子
    sed '5 q' input 打印文本前5行,然后退出
   
    sed -n '/.r.*/p' input 查找”所有的“任意字符后跟r字符再跟0个或多                            个任意字符

sed -n '/.r.*/q'      查找”第一个“任意字符后跟r字符再跟0个或多                           个任意字符,然后退出查找

8.变换命令
  格式:sed 'y/被变换的字符序列/变换的字符序列/' 输入文件
   例子:
   sed ‘y/12345/abcde/' input 将文本中的12345一一对应的替换为abcde
   注意:被变换字符序列和变换字符序列必须等长

9.显示控制字符
   例子
    sed -n '1,$1' input  显示文本中的所有控制字符(如:shift,退格键等)

10.在等位行执行命令组
  例子
等价命令  sed -n -e '/ca/p' -e '/ca/=' input
         sed -n '/ca/{p;=}' input

sed '/ca/{s/i/I/g;s/le/99/;}' input 匹配ca的文本行中将所有i替                                      换为I,匹配行的第一个le替换为99

+++++++++++++++++++++++++++++++++++++++++++++++++++

***四、高级编辑
 1.处理匹配行的下一行
   例子
   sed '/ca/{n;s/11/99;}' input  将文本中ca的匹配行的下一行中的ll替换                                   为99

2.sed缓冲区的处理??????????????????????????
   sed的两种缓冲区
        模式缓冲区
        保持缓冲区

例子
   sed -e '/ca/h' -e 'ce/x' -e '$G' input

3.利用分号分隔多个编辑命令
  格式:sed '编辑命令1;编辑命令2;......'输入文件
  例子
   sed 's/ca/ce; s/csa/ce' input 将文本中ca替换为ce,csa替换为ce
   bourne shell命令行中
   sed '
   >s/ca/ce
   >s/csa/ce
   ....
   >$d' input

转载于:https://blog.51cto.com/moonend/1616625

sed命令的使用和说明相关推荐

  1. Linux下Sed命令的用法(之替换)

    Linux 操作系统最大的一个好处是它带有各种各样的实用工具.存在如此之多不同的实用工具,几乎不可能知道并了解所有这些工具.可以简化关键情况下操作的一个实用 工具是 sed.它是任何管理员的工具包中最 ...

  2. linux之sed命令的用法

    2019独角兽企业重金招聘Python工程师标准>>> sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作 ...

  3. linux脚本中sed -i,Linux 中常用的sed命令

    sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space ...

  4. sed 命令自己总结

    sed命令是流编辑器,通过man命令查看 Sed is a stream editor. sed命令工作模式是一行一行读取文件或者输入,并写入到内存中,如果匹配sed设置的命令则执行并输出到屏幕,不匹 ...

  5. linux shell sed命令 在文本每行 行尾 或 行首 添加字符

    用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.file 在每行的头添加字符,比如"HEAD",命令如下: sed "s/^/HEAD&am ...

  6. linux sed命令 删除指定行

    sed命令常用到的两个选项: -i : 直接在文件上编辑 (edit files in place) -e[默认选项]:只在命令行输出,而文件不改变 (add the script to the co ...

  7. linux sed命令 常用方法

    sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法 sed命令行格式为:          se ...

  8. linux sed命令新文件名,linux中sed命令批量修改

    sed命令下批量替换文件内容 格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 文件名 -i 表示inplace edit,就地修改文件 ...

  9. linux之sed命令n,N,d,D,p,P,h,H,g,G,x解析

    前言 sed执行模板 = sed '模式{命令1;命令2}' 文件,即逐行读入模式空间,执行命令,最后输出打印出来. sed的语法格式: sed [option] 'pattern{sed-comma ...

  10. linux a文本编辑大全,Linux sed 命令 - Linux文档编辑命令大全

    Linux sed 命令是利用脚本来处理文本文件. sed 可依照脚本的指令来处理.编辑文本文件. Sed 主要用来自动编辑一个或多个文件.简化对文件的反复操作.编写转换程序等. 语法sed [-hn ...

最新文章

  1. 请编写fun()函数,函数的功能是删去一维数组中相同的数据在一起出现的数,相同的数只保留一个
  2. Angular cli 发布自定义组件
  3. memset、memcpy、strcpy、HeapAlloc
  4. Springboot mybatis逆向工程org.springframework.beans.factory.BeanCreationException: Error creating bean错误
  5. 【牛客 - 283H】图论一顿套模板(思维转化,Dijkstra)
  6. 2017-2018-1 20155209 《信息安全系统设计基础》第一周学习总结
  7. VB.NET的数据库基础编程[zz]
  8. raspbian linux,如何在 Raspberry Pi 上安装 Raspbian
  9. b2c京东流程图_京东商城的商业模式及其运作流程(精)
  10. python如何更新pip_[Python] 如何更新 PIP 到最新版本?
  11. 折腾手机与平板的心得体会
  12. 怎么调整计算机的音量,笔记本音量怎么调_如何调整笔记本电脑的音量-win7之家...
  13. 翻译文章“AST 模块:用 Python 修改 Python 代码”---!!注意ironpathyon未实现此功能...
  14. blas、lapack、atlas在Ubuntu上的安装
  15. Fluent Search
  16. [地图]常用的地图结构
  17. 2021湖北省普通高考成绩查询果,2021年湖北高考体检时间项目及体检结果查询公布时间...
  18. 后台管理页面通过点击左侧导航栏的菜单项实现右边内容的改变
  19. 模拟电路学习常用原件之电阻的作用和仿真
  20. TVB经典电视剧--《创世纪》回忆

热门文章

  1. C#调用存储过程的通用类
  2. R-CNN , Fast R-CNN , Faster R-CNN原理及区别
  3. mongodb 物理删除数据
  4. Monkey脚本编写
  5. Android 动画效果及Interpolator和AnimationListener的使用
  6. This task is currently locked by a running workflow and cannot be edited
  7. ARP、Tracert、Route 与 NBTStat命令详解
  8. 一位台湾校长的讲话。学习!!!
  9. Vue2 MVVM 双向绑定(数据劫持+发布者-订阅者模式)
  10. mac上的更新node npm