文件编辑之神器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

相关推荐

  • SSH协议详解

    OpenSSH 一、 前言 使用SSH可以在本地主机和远程服务器之间进行加密地传输数据,实现数据的安全。而OpenSSH是SSH协议的免费开源实现,它采用安全、加密的网络连接工具代替了telnet、ftp等古老明文传输工具。 SSH(Secure Shell)是建立在应用层和传输层基础上的安全协议。SSH是目前较可靠,专为远程登陆会话和其他网络服务提供安全性…

    Linux干货 2016-12-16
  • Linux基础知识之RAID

    1、什么是RAID?     多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供。2、RAID的优点?     提高IO 能力:         磁盘并行读写   &n…

    Linux干货 2016-09-01
  • 用户和组命令及相关配置文件总结

    用户和组相关的配置文件 目录 一、创建用户、组和权限相关命令… 1 1、useradd 帐号建立… 1 2、usermod 用户属性更改… 2 3、Passwd. 2 4、userdel 2 6、chfn. 3 7、Chsh. 3 8、finger. 3 9、groupadd. 3 10、Groupdel 3 11、gro…

    Linux干货 2016-10-24
  • 模块式LAMP和fpm式LAMP实现wordpress

           Linux+Apache+Mysql/MariaDB+Perl/PHP/Python这一组合常用来搭建动态网站或者服务器的开源软件,随着开源潮流的蓬勃发展,开源的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件平台在软件方面的投资成本较低,,LAMP平台已经成为最强…

    Linux干货 2016-04-22
  • LVS-NAT负载均衡两个php应用(wordpress,discuzx)( Blog 19)

    结果:需要会话保持,需要共享存储;

    Linux干货 2017-12-20
  • sed使用小命令及课后作业

    Stream EDitor,  行编辑器 sed 是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space ),接着用sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed …

    Linux干货 2017-03-18