sed的应用

一、sed命令(流编辑器)

sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。

sed  [-n] 'AddressCommand' file ..
-n 不打印;sed不写编辑行到标准输出,缺省为打印所有行(编辑和未编辑)。p命令可以用来打印编辑行。
-f 如果正在调用sed脚本文件,使用此选项。此选项通知sed一个脚本文件支持所有的sed命令.
例如:sed -f myscript.sed input_file,这里myscript . sed即为支持sed命令的文件。
-c 下一命令是编辑命令。使用多项编辑时加入此选项。如果只用到一条sed命令,此选项无用,但指定它也没有关系。
-i 编辑原文件(此选项慎用,如果使用则原文件就会被修改,无法恢复)。
-r 表示使用扩展正则表达式

sed由Adress和Command组成

二、Address(用于指定处理数)

1、指定行数量

如:sed -n "1,4p" /etc/passwd   1到4行显示

2、指定的某一行

如:

开头:sed -n  "1" /etc/passwd

结尾:sed -n "$p" /etc/passwd

3、开始行,+N

显示从开始行,向后的N行

如:

sed -n "1,+2p" /etc/passwd  显示第1行的后2行

4、/模式(正则表达式)/:用来过滤特定的行

如:sed -n "/^root/p" /etc/passwd

5、/模式1/,/模式2/

第一次被模式1匹配到的行开始,到第一次被模式2匹配到的行结束,这中间的所有行。

如:sed -n "/\/bin\/bash$/p" /etc/passwd

三、Command

p:显示符合条件的行;

d:删除符合条件的行;

a \string :在符合条件的行后面添加;

\n:用于换行

i  \string : 在指定的行前面添加新行,内容为string

r   FILE   : 将指定的文件的所有内容添加到符合条件行处

w  FILE   : 将指定范围内的内容另存为至指定的文件中

s/pattern/string/修饰符:查找并替换,默认只替换每行中第一次被模式匹配到的字符串。如果想替换全部加修饰符:

g:全局替换

i:忽略字符大小写

如;sed "s/\//#/g" /etc/fstab 把所有的/替换成#号

s///:可以不用/来作为分隔,可以是s***,s###

如:sed "s*\/*#*g" /etc/fstab

例子:如有一文件a内容为: hello  like

haw a you ,love

自身引用(为串加上字符):

使用&:引用模式匹配的整个串

l..e  :  like --->liker

love --->lover

语句:sed "s#l..e#&r#g" a

后项引用(修改串):

l..e  :  like -->Like

love --> Love

语句:sed "s#l(..e)#L\1#g" a

sed的应用的更多相关文章

  1. 文本处理三剑客之sed命令

    第十八章.文本处理三剑客之sed命令 目录 sed介绍 sed命令常用选项 sed常用编辑命令 sed使用示例 sed高级语法 18.1.sed简介 sed全名stream editor,流编辑器,s ...

  2. 6-2 sed 命令

    1. sed : stream editor,流编辑器 是处理纯ASICC纯文本,按行琢行操作的. 编辑器有两种,行编辑器和全屏编辑器 sed:默认不编辑原文件,仅对模式空间中的数据做处理,而后.处理 ...

  3. 基本shell编程【3】- 常用的工具awk\sed\sort\uniq\od

    awk awk是个很好用的东西,大量使用在linux系统分析的结果展示处理上.并且可以使用管道, input | awk ''  | output 1.首先要知道形式 awk 'command' fi ...

  4. sed awk grep三剑客常用

    sed的常用用法: awk的常用用法: grep的常用用法: 除了列出符合行之外,并且列出后10行. grep -A 10 Exception kzfinance-front.log 除了列出符合行之 ...

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

    转自 http://www.cnblogs.com/aaronwxb/archive/2011/08/19/2145364.html 昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed ...

  6. Sed、Awk单行脚本快速参考

    文本间隔: # 在每一行后面增加一空行 sed G awk '{printf("%s\n\n",$0)}' # 将原来的所有空行删除并在每一行后面增加一空行. # 这样在输出的文本 ...

  7. sed awk 样例

    sed [options] '[action]' filename options: -n:一般sed命令会把所有数据都输出到屏幕,如果加入此选项,则只会把经过sed命令处理的行输出到屏幕. -e:允 ...

  8. linux sed命令详解

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

  9. sed命令详解

    搜索 纠正错误  添加实例 sed 功能强大的流式文本编辑器 补充说明 sed 是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时 ...

随机推荐

  1. Tomcat 部署我的第一个程序

    idea 生成war包.先双击clean,再双击package.生成成功之后就会产生war包. 第二步:将生成好的war文件复制到tomcat文件夹下. 第三步:配置tomcat的server.xml ...

  2. hexo+github搭建个人博客

    最近用hexo+github搭建了自己的个人博客-https://liuyfl.github.io,其中碰到了一些问题,记录下来,以便查阅. hexo+github在win7环境下搭建个人博客:hex ...

  3. 《徐徐道来话Java》(1):泛型的基本概念

    泛型是一种编程范式(Programming Paradigm),是为了效率和重用性产生的.由Alexander Stepanov(C++标准库主要设计师)和David Musser(伦斯勒理工学院CS ...

  4. opengl 笔记(2)

    /*- * Opengl Demo Test * * Fredric : 2016-7-10 */ #include <GLUT/GLUT.h> #include <stdlib.h ...

  5. Webpack+React+ES6开发模式入门指南

    React无疑是今年最火的前端框架,github上的star直逼30,000,基于React的React Native的star也直逼20,000.有了React,组件化似乎不再步履蹒跚,有了Reac ...

  6. git 使用

    三个状态 文件由 git 维护三中状态 modified:文件被改动,但还没有被提交 staged:标记被改动的文件到下次需要提交的文件快照 committed:文件已经被安全保存到本地 可以使用命令 ...

  7. ABP源码分析二十:ApplicationService

    IApplicationService : 空接口,起标识作用.所有实现了IApplicationService 的类都会被自动注入到容器中.同时所有IApplicationService对象都会被注 ...

  8. 【SQL】关于无法附加文件的错误

    [SQL]关于无法附加文件的错误 1.错误信息如下: 2.估计是权限问题右击属性,把权限开一下 3.然后就附加成功了~~ ——————————————————————————————————————— ...

  9. 如果你想深刻理解ASP.NET Core请求处理管道,可以试着写一个自定义的Server

    我们在上面对ASP.NET Core默认提供的具有跨平台能力的KestrelServer进行了详细介绍(<聊聊ASP.NET Core默认提供的这个跨平台的服务器——KestrelServer& ...

  10. Oracle 故障处理总结

    Oracle 故障处理总结(更新中..) 各类数据库问题描述模板 记录一则ORA-00054,ORA-00031解决过程 记录一则ORACLE MOVE操作后重建索引过程被强制中断导致的ORA-810 ...