sed讲解与使用

        sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

        格式如下:

        sed[option]… 'script' inputfile… 

        常用选项
            -n:不输出模式空间内容的自动打印
            -e:多点编辑
            -f /PATH/TO/SCRIPT_FILE::从指定文件中读取编辑脚本
            -r:支持使用扩展正则表达式
            -i:原处编辑   
        script:‘地址命令’

        地址定界:
            (1) 不给地址:对全文进行处理
            (2) 单地址:
                #: 指定的行
                /pattern/:被此处模式所能够匹配到的每一行
            (3) 地址范围:
                #,#
                #,+#
                /pat1/,/pat2/
                #,/pat1/
            (4) ~:步进
                1~2 奇数行
                2~2 偶数行

         编辑命令:
            d:删除模式空间匹配的行
            p:显示模式空间中的内容
            a \text:在行后面追加文本;支持使用\n实现多行追加
            i\text:在行前面插入文本;支持使用\n实现多行插入
            c \text:替换行为单行或多行文本
            w /path/to/somefile:保存模式匹配的行至指定文件
            r /path/from/somefile:读取指定文件的文本至模式空间中匹配到的行后
            =:为模式空间中的行打印行号
            !:模式空间中匹配行取反处理 

        替换标记:

            s///:查找替换,支持使用其它分隔符,s@@@,s###
            g:行内全局替换
            p:显示替换成功的行
            w /PATH/TO/SOMEFILE:将替换成功的行保存至文件中
sed示例
sed‘2p’ /etc/passwd

2p.jpg

sed –n ‘2p’ /etc/passwd

n2p.jpg

sed –n ‘1,4p’ /etc/passwd

1,4.jpg

sed –n ‘/root/p’ /etc/passwd

 root.jpg

sed–n ‘2,/root/p’ /etc/passwd从2行开始

2root.jpg

sed -n ‘/^$/p’ file 显示空行行号

空行.jpg

sed –n –e ‘/^$/p’ –e ‘/^$/p’ file

eee.jpg

sed‘/root/a\superman’ /etc/passwd行后

a.jpg

sed‘/root/i\superman’ /etc/passwd行前

i.jpg

sed‘/root/c\superman’ /etc/passwd代替行

c.jpg

sed‘/^$/d’ file

d.jpg

sed‘1,10d’ file

dd.jpg

nl/etc/passwd| sed‘2,5d’

ddd.jpg

nl/etc/passwd| sed‘2a tea’

2a.jpg

sed's/sync/mysync/g'

 sg.jpg

sed–n‘s/root/&superman/p’ /etc/passwd单词后

 &.jpg

sed–n‘s/root/superman&/p’ /etc/passwd单词前

2&.jpg

sed ‘s/var/cat/’ -e ‘s/sbin/lo/’ pets

 e.jpg

sed–i.bak ‘s/sbin/cat/g’ pets

bak.jpg

1、删除/etc/grub2.conf文件中所有以空白开头的行行首的空白字符

1.jpg

2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符

2.jpg

3、在/root/install.log每一行行首增加#号

3.jpg

4、在/etc/fstab文件中不以#开头的行的行首增加#号

4.jpg

5、处理/etc/fstab路径,使用sed命令取出其目录名和基名

5.jpg

6、利用sed 取出ifconfig命令中本机的IPv4地址

6.jpg

7、统计centos安装光盘中Package目录下的所有rpm文件的以.分隔倒数第二个字段的重复次数

7.jpg

 

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

(1)
msj77539273msj77539273
上一篇 2016-08-15 14:31
下一篇 2016-08-15 14:31

相关推荐

  • 马哥教育千万级PV实战大揭秘

    又到了激动人心的架构实战项目实践时间,马哥教育面授班的学员都很期待这一刻的到来,因为经过此次洗礼,能让自己成长更多! 上周二,马哥教育张Sir带领18期面授班的学员们做千万PV级别的电商架构实战项目!新增的多台R710企业级服务器设备,轻松搭建大数据、云计算等高端实验环境,让实战,更加真实!相信经过这场实战的洗礼,小伙伴们架构技能会有更大提升! 【张Sir生…

    2016-06-30
  • 探索这个“男人”

    一、前言 正所谓了解一个命令就得了解他的用法,正好是要了解一个人就得了解他的兴趣爱好,处事态度以及为人是怎么样的。 二、man是什么 man – an interface to the on-line reference manuals Man是manual(手册)的缩写,使用权限是所有用户,man命令提供为linux系统在线提供了很好的帮助手册…

    Linux干货 2016-05-03
  • 常用的shell命令

    硬件: 1.cpu相关 lscpu:查看cpu的统计信息 cat /proc/cpuinfo :查看cpu详细信息,如每个cpu的型号 2.内存相关 free -m:概要查看内存情况,这里的单位是MB cat  /etc/meminfo   :查看内存详细信息 3.磁盘相关: l…

    Linux干货 2016-08-22
  • 马哥教育网络班21期-第一次课程作业

    计算机组成部分及其作用 1.总线 电子管道,携带信息字节并在各个部件间传输。分为地址总线,数据总线,控制总线。 CPU最大可寻址范围:2^N*M,  N为地址总线数量,M为数据总线数量。 2.I/O设备 I/O设备及输入输出设备,最常见的输入设备就是我们非常熟悉的键盘,鼠标,我们通过我们通过这些设备向计算机传达指令,让计算机完成我们想要它完成的工作…

    Linux干货 2016-06-29
  • 看了还想看—普通权限及umask

        权限在操作系统是尤为重要的,无论是windows和linux中,都少不了权限这么一说,权限的大小决定了你能操作些什么,在linux中,权限对目录和文件的意义是不同的,并且还有特殊权限。今天,我们就来说说一说权限在linux中的重要性以及权限操作命令。     权限:权限决…

    Linux干货 2016-08-03
  • N22+张zhangzhang+第6周博客作业

    请详细总结vim编辑器的使用并完成以下练习题   vim编辑器是vi编辑器的增强版,是全屏文本编辑器,用于完成文本的输出、删除、查找、替换、块操作等众多功能。一般分三种模式:编辑模式、输入模式、末行模式。 vim各种按键的功能 编辑模式: 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以…

    Linux干货 2016-09-20