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

相关推荐

  • 20160808作业

    20160808作业 1、每日课堂笔记总结 2、预习 3、每日课堂pdf练习 1、删除/etc/grub2.cfg文件中所有以空白开头的行行首的空白字符 [root@Centos7 ~]# sed '/^[[:space:]]\+/d' /etc/grub2.cfg  # # …

    Linux干货 2016-08-15
  • awk用法指北

    awk用法指北 awk是对Linux系统中文本三剑客之一。其功能强大,支持条件判断、数组、循环,并且内置大量函数,近乎于一门独立的编程语言。 awk基本语法awk [option] ‘program’ FILE 最常用选项 -F “” 指定字段分隔符 //分隔符为PATTERN-v VAR=value 指定变量…

    Linux干货 2017-05-21
  • 第四周练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限 # cp -a /etc/skel /home/tuser1 # chmod -R go= /home/tuser1 2、编辑/etc/group文件,添加组hadoop #vim /etc/group #hadoop:x:5…

    Linux干货 2017-10-21
  • shell脚本编写-2

    1、条件判断if语句       1)、 单分支 if  判断条件;then     条件为真的分支代码     fi 2)、双分支     if  判断条件; then    &…

    Linux干货 2016-08-15
  • 从Linux小白到大牛——与狼共舞的日子13

    马哥教育网络班21期+第13周课程练习 1、建立samba共享,共享目录为/data,要求:(描述完整的过程) 1)共享名为shared,工作组为magedu; 2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名; 3)添加sa…

    Linux干货 2017-01-03
  • linux 常用命令

    linux   常用命令:      pwd: printing working directory                     显示工作目录       cd:cha…

    Linux干货 2016-10-28