sed的用法以及练习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sed的用法以及练习相关的知识,希望对你有一定的参考价值。

sed命令: 

   sed是主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等的文件处理工具。

常用选项:

sed [options] ‘AddressCommand‘ file ...

-n: 静默模式,不再默认显示模式空间中的内容,只显示被处理的行。

-i: 直接修改原文件。(慎用)

-e SCRIPT -e SCRIPT:可以同时执行多个脚本

-f /PATH/TO/SED_SCRIPT

sed -f /path/to/scripts  file

-r: 表示使用扩展正则表达式

常用命令:
        a   ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
        c   ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
        d   ∶删除,因为是删除啊,所以 d 后面通常不接任何东西;
        i   ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
        p  ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~
        s  ∶取代,可以直接进行取代的工作,通常这个 s 的动作可以搭配正规表示法!

1、删除/etc/grub.conf文件中行首的空白符;

    sed -r ‘s/[[:space:]]//g‘ /etc/grub.conf

2、替换/etc/inittab文件中"id:3:initdefault:"一行中的数字为5;

    sed ‘[email protected]\(id:\)[0-9]\(:initdefault:\)@\15\[email protected]‘ /etc/inittab,其中\1和\2为地址空间引用;

3、删除/etc/inittab文件中的空白行;

    sed ‘/^$/d‘ /etc/inittab

4、删除/etc/inittab文件中开头的#号; 

    sed ‘s/^\#//g‘ /etc/inittab

5、删除某文件中开头的#号及后面的空白字符,但要求#号后面必须有空白字符;

    sed ‘s/^\#[[::space:]]+//g‘ /etc/inittab

6、删除某文件中以空白字符后面跟#类的行中的开头的空白字符及#

    sed -r ‘[email protected]^[[:space:]]+#@@g‘ /etc/inittab

7、取出一个文件路径的目录名称;

    echo ‘/etc/rc.d‘ | sed -r ‘[email protected]^(/.*/)[^/]+/[email protected]\[email protected]

以上是关于sed的用法以及练习的主要内容,如果未能解决你的问题,请参考以下文章

sed 以及 awk用法

sort uniq cut sed wc指令入门以及练习

sed用法练习

sed的用法练习

Linux之sed:删除某行以及替换

linux shell sed命令用法