Linux三剑客之sed命令

一.sed命令概述

Stream EDitor ,行编辑器

sed是一种流编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为”模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有改变除非你使用重定向存储输出.sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等

二.sed工具的用法:

sed [option]… ‘script’ inputfile…

 

常用选项:

-n 不输出模式空间内容到屏幕,即不自动打印

-e 多点编辑

-f /PATH/SCRIPT_FILE 从指定文件中读取编辑脚本

-r 支持使用扩展正则表达式

-i 原处编辑(慎用)

                                              blob.png

blob.png

script:

地址命令’

地址定界:

1) 不给地址:对全文进行处理

2) 单地址:#:指定的行

/pattern/:被此处模式所能够匹配到的每一行

blob.png

3) 地址范围

#,#

#,+#

blob.png

/pat1/,/pat2/

 

#,/pat1/

4)~:步进

1~2奇数行

2~2偶数行

blob.png

 

 

编辑命令:

d:删除模式空间匹配到的行

blob.png

blob.png

 

 

p:显示模式空间中的内容

blob.png

blob.png

a \text :在行后面追加文本;支持使用\n实现多行追加

blob.png

I \text :在行前面插入文本;支持使用\n实现多行插入

blob.png

c \text :替换行为单行或多行的文本

blob.png

w /path/somefile :保存模式匹配的行至指定文件

blob.png

 

r /path/somefile :读取指定文件的文本至模式空间中匹配到的行后

blob.png

=:为模式空间中的行打印行号

blob.png

!:模式空间中匹配行取反处理

blob.png

 

sed工具

s///:查找替换,支持使用其他分隔符,s@@@,s###

s/string1/string2

blob.png

替换标记:

g:行内全局替换

blob.png

p:显示替换成功的行

blob.png

w /PATH/TO/SOMEFILE: 将替换成功的行保存至文件中

blob.png

三.sed 高级编辑工具

h:把模式空间中的内容覆盖至保持空间中

 

H:把模式空间中的内容追加至保持空间中

g:从保持空间取出数据覆盖至模式空间

                                              blob.png

G:从保持空间取出内容追加至模式空间

blob.png

blob.png

x:把模式空间中的内容与保持空间中的内容进行互换

n:读取匹配到的行的下一行覆盖至模式空间

blob.png

blob.png

N:读取匹配到的行的下一行追加至模式空间

blob.png

d:删除模式空间中的行

blob.png

D:删除当前模式空间开端至\你的内容(不再传至标准输出),放弃之后的命令,但是对剩余模式空间重新执行sed

 

 

原创文章,作者:Kartik,如若转载,请注明出处:http://www.178linux.com/33612

(0)
KartikKartik
上一篇 2016-08-15 09:26
下一篇 2016-08-15 09:26

相关推荐

  • GRUB启动故障排除和内核编译

    如何进入光盘应急系统(以下修复操作仅适用于GRUB legacy, 不适用于GRUB2): 步骤一:给主机挂上安装光盘, 或者有相应启动镜像的硬盘分区(可移动的分区) 步骤二:开机时选择CDROM先启动 步骤三:进入光盘启动界面选择应急救援模式 步骤四: 不选择设置网络接口, 直接读取磁盘分区并以读写方式挂载 步骤五: 选择shell进入bash中对磁盘进行…

    Linux干货 2016-09-12
  • 【N25第二周作业】Linux文件管理命令以及文件名通配glob

    1、Linux下的文件管理类命令使用方法和示例 Linux下的文件管理类命令有如下列举的一些: 目录管理命令:cd,pwd,ls,mkdir,rmdir,tree文件管理命令:touch,cp,mv,rm,stat查看:more,less,head,tail,cat,tac,lsattr,whereis,which权限:chmod,chown,chattr,…

    Linux干货 2016-12-12
  • DNS高级应用

        DNS高级应用     1、主从复制      应用场景: (1)、当主DNS服务器压力过大,无法正常处理过多的DNS解析请求时,从DNS服务器可以起到负载均衡的作用。 (2)、当主DNS服务器出现故障时,从DNS服务器可以为其提供冗余备份功能。     实验环…

    Linux干货 2015-06-18
  • Linux系统上获取命令的帮助信息

    获取命令的使用帮助: 内部命令:help COMMAND   #针对内检命令 外部命令: (1) 命令自带简要格式的使用帮助      COMMAND –help (2) 使用手册:manual  [root@localhost /]# ls /usr/share/man   #记住这个…

    Linux干货 2016-08-15
  • 第九周作业

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; 2、写一个脚本     (1) 获取当前主机的主机名,保存于hostname变量中;     (2) 判断此变量的值是否为loc…

    2017-04-20
  • 网络班N22期第五周博客作业

    1、显示当前系统上root、fedora或user1用户的默认shell; [root@bogon ~]# cat /etc/passwd | grep -E "^(root|fedora|user1)\>" | cut -d:&nb…

    Linux干货 2016-09-15