linux学习之路之sed命令使用

本章主要介绍sed的命令使用

sed(Stream Editor)是一种流编辑器,或者叫做行编辑器,以行为单位进行编辑处理,而后续会介绍的vi编辑器是一种全屏编辑器。

sed的工作原理:

    逐行读取文件中的每一行,并将其放在内存空间中,在对内存空间中的数据进行处理,将处理后的结果打印到屏幕上。而这种内存空间也叫做模式空间。

所谓模式空间:就是将放在内存空间的数据根据模式来匹配,匹配成功的数据进行相应的编辑处理,将处理后的数据打印到屏幕上去

说明:sed命令默认将文件中所有的行打印到屏幕上去。

sed命令默认不会修改源文件内容,只是产生显示的效果。


sed命令的使用用法:

sed [option] ‘AddressCommand‘ [FILE...]

option:

    -n:静默模式,sed命令默认会将文件中所有的行打印出来,加上-n表示只有符合模式匹配的行才

    打印到屏幕上显示出来

-i:直接修改原文件

-e SCRIPT1 -e SCRIPT2..:可以同时执行多个脚本(这里的脚本指的是‘AddressCommand‘)

-f /path/to/sed_script:这是个脚本文件是存放sed的脚本命令的,每一行都是一个脚本,这个命令的作

   用就是将脚本文件中的每一条命令加载到命令行来执行,进而对指定文件中符合模式的行编辑处理。

    使用方法形如:sed -f /path/to/sed_script FILE

-r:表示支持正则表达式


Address:原来寻找文件中符合条件的行

地址的定界有一下5种

1、指定StartLine,EndLine

例如:第1到第100行   这样表示:1,100


2、/ReGExp/ :使用模式中的正则表达式来定位

例如:找到以root字符串开始的行,可以这样表示:/^root/


3、/pattern1/,/pattern2/

匹配的是:从pattern1第一次匹配的行开始,到pattern2第一次匹配的行结束,这中间所有的行


4、LineNumber:指定的第几行


5、StartLine,+n:匹配从第StartLine行起,向后的N行,共匹配N+1行


Command:

    d:删除指定的行

    p:显示符合条件的行

    a \string:指定行的后面追加新行,新行的内容为‘string‘

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

    

    r:将指定的文件添加到符合条件的行

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

    s/pattern/string/修饰符:字符串的替换;注意:string是不可以使用元字符的,因为他不是模式

    默认不加修饰符表示只替换每一行中第一次匹配到的字符串

        g:表示全局替换

    说明:替换符不仅仅只限于/来表示,#,@等都可以原来表示替换符

        &:只能引用模式匹配的整个字符串

        后向引用:可以引用自己想要引用的字符串,可以是全部,也可以是部分


  













linux学习之路之sed命令使用,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。