文件编辑之神器Sed

1.png

2.png

pattern space   //  文本中每行内容都会进入到pattern space中, 如果匹配到了,就会进入到右分支, 如果没有匹配到,则进入左分支。


hold space  //  就是已经被模式匹配到, 并且编辑后保存的内容就是hold space 中.

默认情况下,当没有被匹配之后,没有匹配到内容也会被输出到屏幕之上, 一旦被模式匹配上, 就分为两种操作, 一种是标准输出, 另外一种则是编辑。

 

sed 用法:  sed [option]… script inputfile

选项[option]:

-n: 不输出模式空间的内容(屏蔽自动输出

        -e: 多点编辑

-f: 文件,文件中放地址命令

-r: 支持扩展的正则表达式

-i: 在文件中直接编辑

 

   script == 地址命令  

地址和命令之间没有任何符号。

   

地址定界:

(1)不给地址,直接操作, 对全文操作

(2)  单地址

1>. #

2>. /pattern/  被此处模式匹配到的每一行

3>.$ 表示最后一行

 

(3) 地址范围

1>. #,#   两个指定行中的所有行,包括两个指定行

2>.#,+#   +#  同上

3>./part1/,/part2/   两次匹配行之间的所有行,包括匹配到的行

4>.#,/part/    指定行到匹配的行

 

(4)步进

1~2   所有的奇数行

2~2  所有的偶数行

 

基础编辑指令:

(1). d  删除匹配到的行

(2). p  显示匹配到的行  一般要与-n一起用,否则被匹配到行会显示两次

(3). c   替换匹配的字符串或者行

(4). a   在匹配到行尾追加内容

(5) i   在匹配到行首添加内容

(6) w /path/to/file   sed匹配编辑后的内容保存到另外一份文件中

(7) r /path/to/file    将指定文件的内容追加到匹配到行之后

(8) =  打印行号

(9)  !  模式空间中匹配行取反处理

 

替换操作删除或者编辑行中部分内容的时候,要使用替换操作

s/匹配到到内容/替换的内容/替换标记

替换标记:

g: 全局替换(整行都替换)  默认只替换第一个匹配到的内容

p: 显示替换成功的行

w:  将替换成功的行指定到模文件中 w /path/to/file

 

高级编辑指令:

高级编辑指令其实就是将模式空间和保持空间中的内容来回互调,实现一些高大上的指令效果。

选项:

3.png

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

(0)
458813466458813466
上一篇 2016-08-15 09:24
下一篇 2016-08-15 09:25

相关推荐

  • 第三周作业

    查看链接:http://note.youdao.com/noteshare?id=9b1aa0906b0918cc5cb557aa348e82da

    Linux干货 2016-09-19
  • M25初尝试部署RAID磁盘阵列组

    在学习了linux系统管理硬盘设备的基础后,现在尝试部署RAID10硬盘组技术,在部署前我们先了解一下什么叫“RAID”磁盘冗余阵列(Redundant Array of Independent Disks)。 RAID技术就是把多块硬盘设备组合成一个容量更大、更安全的硬盘组,可以把数据切割成多个区段后分别存在各个不同物理硬盘设备上,然后利用分散读写需求赖提…

    2017-07-12
  • 文件、目录练习

    将/etc/issue文件的内容转换为大写保存到/tmp/issue.out文件中: 将当前系统登录用户信息转换为大写后保存至/tmp/who.out文件中: 将/root/下文件列表,显示成一行,文件名之间用空格隔开: file1文件的内容为“1 2 3 4 5 6 7 8 9 10”计算出所有数字的总和: 处理字符串“xt.,| 1 jr#!$mn 2 …

    Linux干货 2016-08-05
  • linux sort 命令详解

    linux sort 命令详解 sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。 [rocrocket@rocrocket programming]$&nb…

    Linux干货 2016-08-15
  • nfs实验

    实验要求: (1) 创建一个共享mydata,路径为/mysql/data,客户端1挂载至/mydata;而后客户端1主机安装mysql或mariadb,将数据目录设定为/mydata,要确保mysql服务能正常 运行,但数据目录位于nfs server上; (2) 客户端2主机使用类似客户端1主机的方式挂载mydata共享至本地的/mydata目录,而后,…

    Linux干货 2016-10-24
  • 第十周

    请详细描述CentOS的启动流程     启动第一步–加载BIOS         当打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它,这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信…

    Linux干货 2017-01-03