Welcome 微信登录

首页 / 操作系统 / Linux / sed命令用法详解

sed简介
stream editor 流式编辑器(行编辑器),一次读取一行,处理一行;所有操作是在模式空间中进行,根据需要再做处理基本格式
 sed [OPTION]... {模式or /正则表达式/}[command] [input-file]...
即理解为sed 通过一些option(选项) 对特定文件(input-file)通过指定的模式匹配后的结果,再用sed的子命令command处理,得到最终的结果

说明:
1、若没有特别说明,则以下所有的例子都不对源文件进行操作
2、sed后面的内容使用单引号  或 双引号(当有变量需要引用时)
3、正则表达式的使用,默认的为基本的正则表达式
     
options:
 -r 使用扩展正则表达式
 -i 直接操作源文件
 -e 同时处理多个操作
 -n 表示在模式空间中的文本不显示,只显示处理之后的内容
command(所有以下的命令都可以取反即使用"!")
d  删除指定的行
    例如:删除/etc/fstab的前两行           eg:sed "1,2d" /etc/fstab
    删掉除了前两行的内容                     eg:sed "1,2!d" /etc/fstab

p:显示指定的内容(但会显示两边符合条件的内容,因为模式空间中的文本在处理   之前,每一次都会先显示)
  例如:显示/etc/fstab中的前两行内容   eg: sed "1,2p" /etc/fstab  前两行会显示两次
                                                        eg: sed -n "1,2p" /etc/fstab  只显示了前两行

a:在模式匹配到的行后面添加新内容
  例如:对/etc/fstab中以#号开头的行后面加一行为this is a new line  
                                                        eg:sed "/#/a his is a new line" /etc/fstab

文件test的内容如下:
 He love his love.
 She like her like.
 Dove love her like.


 i:在模式匹配到的行前面添加新内容
  例如:对文件/etc/fstab以#号开头的行前面加一行为this is a new line  
                                                                       eg:sed "/#/r his is a new line" /etc/fstab
  可以实现多行添加   例如:上个例子中添加两行“line1" "line2" 
                                                                       eg:sed "/#/rline1 line2" /etc/fstab r file:把file中的内容添加到指定文件中的指定位置
  例如:把/etc/fstab中的内容添加到/etc/inittab中的第二行后面 
                                                                        eg: sed "2r /etc/fstab" /etc/inittab

w file:把指定文件的指定内容保存到 file中
  例如:把/etc/fstab中的以小写字母开头的行保存到/tmp/fstab.out中 
                                                         eg: sed "/[a-z]/w /tmp/fstab.out" /etc/fstab

n:依次读取下一行 ,第一条被覆盖;   eg:sed -n "1n;p" /etc/test 结果如下:
She like her like.
Dove love her like.
N:依次下一行 追加;在读取一行之后,再读一行 以追加的方式 在模式空间中是一行,显示出两行,去掉中间的换行符,两行合并为一行 
eg:sed -n "1N;p" /etc/fstab
结果如下:
He love his love.
She like her like.
Dove love her like. 
                                     
eg: sed  "1N;s/ / /" test         把换行符替换成空白,即去掉换行符
结果如下:
He love his love. She like her like.
Dove love her like.
  • 1
  • 2
  • 下一页
通俗易懂GRUBLinux grep 正则详解相关资讯      sed  Sed命令 
  • Linux常用命令之sed  (今 08:03)
  • Linux 管理员都应该会的命令:sed   (01月13日)
  • Linux正则表达式sed 详述  (04/16/2015 15:19:04)
  • LFCS 系列第一讲:如何在 Linux 上  (03月28日)
  • sed 命令详解  (11/15/2015 10:16:53)
  • sed一些参数的用法  (04/16/2015 15:05:09)
本文评论 查看全部评论 (0)
表情: 姓名: 字数