1 sed 又称为流编辑器,它逐行将文本文件中的行读取到模式空间中间去,将符合编辑条件的行进行编辑后输出到显示器上来。默认sed不编辑原文件只处理模式空间中的内容。

2 sed用法

sed [option]‘addresscommand[修饰符]‘ file

2.1 option

-n 采用静默模式,所谓静默模式就是只输出被匹配到的行,不在默认显示模式空间中内容

-i 直接修改原文件

-r 使用扩展的正则表达式

-e 同时连接多个 sed 命令

如sed -e ‘$a \this is end ‘ -ne ‘/\<if\>/p‘ /etc/rc.d/rc 此时就是同时使用了两个sed,

-f 其后接一个文件(文件中保存的内容全是 addresscommand )

2.2 address 搜索范围

1 指定单独某行 进行精确匹配

2 指定某行至某行 如 3,5 表达3-5行

3 3,+N 表示第三行后再接N行

4 /正则表达式/ 表示正则表达式中匹配到的行

5/正则表达式1/,/正则表达式2/ 表示第一次被正则表达式1匹配到的行和被正则表达式2匹配到的行之间的行。

2.3 command 编辑命令

d delete 删除

p printf 打印

a \string 在匹配到行的下面新建一行将string里面内容写入

i \string 在匹配到的行上门新建一行 并写入

r file 将file文件中的内容读取到匹配的行后面

w file 将匹配到的行内容写入文件file中

s /pattern/string/

s /// 1118.www.qixoo.qixoo.com这种表现形式外 还可以是@@@或者### 这中表现形式

\(\) \1 \2 也可以用到 反向引用,当引用是全局的时候 也可以直接用&来引用

2.4 修饰符

-g 全局匹配 表示每一行中所有符合条件的都替换

-i 忽略字符的大小写

练习部分:

1删除 /etc/grup.conf 中行首的空白符

sed s/^[[:space:]]// /etc/grub.conf

sed ‘1,$s/^[[:space:]]//‘ /etc/grub.conf 此处注意s后面没有空格直接接的/

2替换/etc/inittab 中“id=3” 中的数字为5

sed ‘s/id:3/id:5/‘ /etc/inittab

sed ‘$s/id:3/id:5/‘ /etc/inittab

sed ‘$s/^id:3/id:5/‘ /etc/inittab

3删除/etc/inittab 中的空白行

sed ‘/^#$/d‘ /etc/inittab

4删除/etc/inittab文件中开头的#号

sed ‘s/^#//‘ /etc/inittab

5取出一个文件路径中的目录名称

echo "/etc/rc.d/" | sed -r ‘s@^(/.*/)[^/]+/?@\

对上述问题进行分解处理

1 /etc/rc.d/ 搜索^/.*/ 的字符时默认的贪婪模式会搜索到整个字符串/etc/rc.d/

2 /etc/rc.d/ 搜索[^/]+ 默认搜索时的贪婪模式 会匹配一个单词(此处的单词是以字母和数字组成的字符集)etc ;此时若不加“+” 匹配到的是一个字符,[]表示匹配单个字符 [^/] 表示除/之外的单个字符。 [^/]+ 接^/.*/ 之后就表示rc.d 这个单词

当第一部分的贪婪模式和第二部分的都匹配到相同的字符时,第二部分的匹配内容是从后面的单词开始向前面的单词的方向进行匹配的,在反向引用时其就缩小匹配范围 此时紧紧只是匹配了/etc// 这个部分

3/? 在次与^/.*/匹配的范围重合 根据最小范围匹配原则,则最后反向引用匹配的结果为

/etc/

7统计/etc/init.d/functions文件中每个单词出现的次数并排序

sed -r ‘s/[^[:alpha:]]+/\n/g‘ /etc/init.d/functions | sort | uniq -c

最新文章

  1. 创建Cookie,简单模拟登录,记录登录名,购物车记录先前添加内容,session控制登录
  2. jquery.validate.unobtrusive.js插件作用
  3. PhpStorm Git 配置
  4. 神经网络:多层网络与C++实现
  5. IIS 之 HTTP错误 404.17 - Not Found(请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。)
  6. 不支持关键字:metadata
  7. POJ 2528 Mayor&#39;s posters(线段树)
  8. Sqlserver2012数据库乱码的解决方法
  9. j2ee开源项目——IT学习者博客(itxxzblog v1.0)
  10. MVC模式编程演示样本-登录认证(静态)
  11. [刷题]算法竞赛入门经典(第2版) 5-12/UVa511 - Do You Know the Way to San Jose?
  12. win10 uwp 兴趣线
  13. java基础梳理--朝花夕拾(三)
  14. Excel中输入1时单元格显示为勾
  15. WebForm - 文本框回车事件
  16. test zhenai
  17. 【工具】我的Eclipse使用习惯
  18. POJ-2081 Terrible Sets(暴力,单调栈)
  19. 从 exe.config 读取appSettings 中的配置数据
  20. javascript函数笔记

热门文章

  1. Visual Studio 2015初体验——前端开发工作的问题
  2. 数据库表转javaBean
  3. SQL复杂查询和视图(2)
  4. 最短判断IE的办法
  5. difference between append and appendTo
  6. zabbix解决中文乱码问题(没有测试成功)
  7. jq实现登陆页面的拖拽功能
  8. 美发帮--android APP开发实战
  9. 【日常笔记】java spring 注解读取文件
  10. 【转】HTTP协议详解