用法

sed [option] 'Address Command' yourfile
e.g. sed -n '2,13p' lineuser #打印文件lineuser中第2~13行的内容,-n为option, 2,13为Address,p为Command
Address与Command中间的空格也可以省略
 

sed处理过程

待处理的文件一行一行地被sed读入到模式空间(pattern space)中,根据匹配及相应的处理命令进行输出显示,默认下每个模式空间的内容都会输出
 

sed常用option

  -n:不显示模式空间的行,只显示被匹配处理的行
  -i : 将处理后的结尾直接覆盖原文件
  -e script:可以指定多个-e参数,每个处理命令都依照最原先的文件内容进行处理,而不是一个处理完再传递给下一个处理
  -f script-file :将命令参数写到一个文件中进行调用
  -r:表示使用扩展正则表达式
 
练习文件
[root@zejin240 tmp]# cat lineuser
1:root
2:bin
3:daemon
4:adm
5:gootee
6:sync
7:shutdown
8:halt
9:mail
10:uucp
11:operator
12:hadoop
13:gopher
14:admin
15:nobody
 
 

Address匹配方式

1.addr1 匹配指定特定行
#显示第三行内容
[root@zejin240 tmp]# sed -n '3p' lineuser
3:daemon
 
2.addr1,addr2 匹配从addr1到addr2的行
#打印第四到六行
[root@zejin240 tmp]# sed -n '4,6p' lineuser
4:adm
5:gootee
6:sync
 
3./regexp/ 匹配含有regexp的行
打印所有包含oo字符的行
[root@zejin240 tmp]# sed -n '/oo/p' lineuser
1:root
5:gootee
12:hadoop
 
4./regexp1/, /regexp2/ 匹配从含有regexp1,到regexp2的行
#打印从包含有mon的行到包含有adm的行
[root@zejin240 tmp]# sed -n '/mon/,/adm/p' lineuser
3:daemon
4:adm
 
5.first~step 匹配以first行为开始,以step为间隔的行
#打印1,3,5....的行,即奇数行
[root@zejin240 tmp]# sed -n '1~2p' lineuser
1:root
3:daemon
5:gootee
7:shutdown
9:mail
11:operator
13:gopher
15:nobody
 
#打印2,4,6....的行,即偶数行
[root@zejin240 tmp]# sed -n '2~2p' lineuser
2:bin
4:adm
6:sync
8:halt
10:uucp
12:hadoop
14:admin
 
 
6.addr1,+N 匹配addr1行及之后的N行
[root@zejin240 tmp]# sed -n '3,+4p' lineuser
3:daemon
4:adm
5:gootee
6:sync
7:shutdown
 
7./regexp/,+N 匹配含有regexp的行,及其后面N行
[root@zejin240 tmp]# sed -n '/adm/,+1p' lineuser
4:adm
5:gootee
14:admin
15:nobody
 
 
 
 

Command命令

1. a \text 在匹配的行后添加行
#在5到8行后每行添加一行
[root@zejin240 tmp]# sed '5,8a \nice to meet you' lineuser
1:root
2:bin
3:daemon
4:adm
5:gootee
nice to meet you
6:sync
nice to meet you
7:shutdown
nice to meet you
8:halt
nice to meet you
9:mail
10:uucp
11:operator
12:hadoop
13:gopher
14:admin
15:nobody
 
2. i \text 在匹配的行前添加行
#在5到8行前每行添加一行
[root@zejin240 tmp]# sed '5,8i \nice to meet you' lineuser
1:root
2:bin
3:daemon
4:adm
nice to meet you
5:gootee
nice to meet you
6:sync
nice to meet you
7:shutdown
nice to meet you
8:halt
9:mail
10:uucp
11:operator
12:hadoop
13:gopher
14:admin
15:nobody
 
 
3. d 删除匹配的行
#删除5到13行
[root@zejin240 tmp]# sed '5,13d' lineuser
1:root
2:bin
3:daemon
4:adm
14:admin
15:nobody
 
4. c \text替换匹配的行
#5到13行的所有内容替换成一行
[root@zejin240 tmp]# sed '5,13c \nice to meet you' lineuser
1:root
2:bin
3:daemon
4:adm
nice to meet you
14:admin
15:nobody
 
 
5. p 打印匹配的行 示例在上面已经出现,不再列举
6. r file 在匹配的行后插入file的内容
#在第3~5行每行后添加文件的内容
[root@zejin240 tmp]# cat name
Beijing
Shenzhen
[root@zejin240 tmp]# sed '3,5r name' lineuser
1:root
2:bin
3:daemon
Beijing
Shenzhen
4:adm
Beijing
Shenzhen
5:gootee
Beijing
Shenzhen
6:sync
7:shutdown
8:halt
9:mail
10:uucp
11:operator
12:hadoop
13:gopher
14:admin
15:nobody
 
7 s/regexp/replacement/ 将regexp替换成replacement,默认只处理每一行第一个出现的字符串,如果要处理所有的字符串,需要在最后加上g,如果需要忽略大小写,需要在最后加上i
#将第3到15行里面出现oo的地方都替换成NICE TO MEET YOU
[root@zejin240 tmp]# sed '3,15s/oo/NICE TO MEET YOU/' lineuser
1:root
2:bin
3:daemon
4:adm
5:gNICE TO MEET YOUtee
6:sync
7:shutdown
8:halt
9:mail
10:uucp
11:operator
12:hadNICE TO MEET YOUp
13:gopher
14:admin
15:nobody
 
 
 
 
 
 

sed命令使用详解归纳的更多相关文章

  1. Linux sed命令实例详解

    简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的 ...

  2. sed命令用法详解

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

  3. sed命令使用详解

        内容来自马哥视频,感谢马哥精彩讲解 sed:编辑器 sed: Stream EDitor, 行编辑器,逐行进行处理 grep:实现文本过滤 awk:文本报告生成器 sed默认不编辑源文件,而是 ...

  4. Linux下的sed命令使用详解

    sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”pattern space,接着用sed命令处理缓冲区中的内容, ...

  5. sed命令例子详解

    sed -e '/Patricia/h' -e '/Margot/x' datafile 包含Margot的行将被包含Patricia的行替换: sed -e /WE/{h;d;}' -e '/CT/ ...

  6. install 命令用法详解

    install 命令用法详解 http://man.linuxde.net/install install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户.install命令和cp命令类似 ...

  7. Make命令完全详解教程

    Make命令完全详解教程 无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令.不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install.利用m ...

  8. Linux 执行文件查找命令 which 详解

    某个文件不知道放在哪里了,通常可以使用下面的一些命令来查找: which  查看可执行文件的位置 whereis 查看文件的位置 locate   配合数据库查看文件位置 find   实际搜寻硬盘查 ...

  9. systemctl命令用法详解

    systemctl命令用法详解系统环境:Fedora 16binpath:/bin/systemctlpackage:systemd-units systemctl enable httpd.serv ...

随机推荐

  1. asp.net中的<%%> <%#%> <%=%>形式的详细用法 (转载)

    博客分类: ASP.NET   一. <%%>这种格式实际上就是和asp的用法一样的,只是asp中里面是vbscript或者javascript代码,而在asp.net中是.net平台下支 ...

  2. python网页抓取练手代码

    from urllib import request import html.parser class zhuaqu(html.parser.HTMLParser): blogHtml = " ...

  3. 以self-contained方式在Linux上部署ASP.NET Core站点

    今天准备将一个在Windows上用VS2015开发的ASP.NET Core程序部署到阿里云Linux服务器上,部署时发现这台服务器是内网服务器,无法直接安装.NET Core SDK,于是想到尝试用 ...

  4. 一个App完成入门篇(七)- 完成发现页面

    第七章是入门篇的倒数第二篇文章了,明天整个APP将进入收官. 本节教程主要要教会大家使用二维码扫描和用do_WebView组件加在html页面. 导入项目 do_WebView组件 扫描功能 自定义事 ...

  5. 《HiWind企业快速开发框架实战》(1)框架的工作原理

    <HiWind企业快速开发框架实战>(1)框架的工作原理 1.HiWind架构 HiWind的基本架构如下: 持久层部分:同时为框架本身的业务服务,也为开发人员的自定义业务服务. 逻辑层: ...

  6. 迷你MVVM框架avalon在兼容旧式IE做的努力

    很多时候,写代码就像砌砖头,只要我们不关心盖楼的原因.建筑的原理.土木工程基础和工程经验,就算我们砌了100栋高楼,我们也就只是一个砌砖工人,永远也成为不了一个工程师,更别说建筑师了.而那些包工头也只 ...

  7. MySQL MMM高可用方案

    200 ? "200px" : this.width)!important;} --> 介绍 本篇文章主要介绍搭建MMM方案以及MMM架构的原理.这里不介绍主从.主主的搭建方 ...

  8. 分享一个css3写的气泡对话框,适合于即时通讯和留言本的动态内容

    效果预览: css code .message_content{width:100%;margin-top:10px;clear:both;float:left;} .face{float:left; ...

  9. Module Zero之权限管理

    返回<Module Zero学习目录> 概览介绍 角色权限 用户权限 概览介绍 Module-Zero实现了ABP授权系统的IPermissionChecker接口.这篇文章中,我们将会看 ...

  10. JS设计模式(一)

    刚入职时,看过一段时间的设计模式,似懂非懂.不知不觉过去七个月了,对JS的理解更深刻了,数据结构与算法的基础也基本上算是过了一遍了,接下来要把设计模式搞定,然后不再深层次研究JS了,而是学习前端自动化 ...