sed:编辑器

sed:Stream EDitor,行编辑器

用法:
        sed [opthon]... ‘script’ inputfile..

scritp:‘地址命令’

常用选项:
                -n:不输出模式中的内容至屏幕;默认输出;
                -e:多点编辑功能;
                -f /PATH/TO/SCRIPT_FILE:从指定文件中读取编辑脚本;
                -r:使用扩展正则表达式,默认基本正则表达式
                -i:原处编辑;相当于直接编辑
    地址定界:
        1:不给地址;对全文进行处理;
        2:单地址;                
            #:指定的行
            /pattern/:被此处模式所能够匹配到的每一行;
        3:地址范围;
            #,#
            #,*#
            /pat1/,/pat2/

编辑命令:
        d:删除
            ~]# sed '/^UUID/d' /etc/fstab     ;删除uuid开头的行
            ~]# sed '/^#/d' /etc/fstab         ;删除空行;
            ~]# sed '1,5d' /etc/fstab         ;删除1-5行的文件
        p:打印显示模式空间中的内容至屏幕上;结合-n使用

~]# sed -n  '/^UUID/p' /etc/fstab

a \text:在行后面追加文本,支持使用\n实现多行追加;

~]# sed '/^UUID/a \# hello sed' /etc/fstab

i \text:在行钱面插入文本,支持使用\n实现多行插入;

~]# sed '/^UUID/i \# hello sed' /etc/fstab

c \text:替换行为单行和多行文本;

sed '/^UUID/c \# hello sed' /etc/fstab

w  /path/to/somefile:保存模式空间匹配到的行至指定文件中;

~]# sed '/^UUID/w /tmp/fstab.txt' /etc/fstab

r /path/from/somefile: 读取指定文件的文本流至模式空间匹配到的行的行后;

~]# sed '6r /etc/issue' /etc/fstab

= :为模式空间中的行打印行号;
        
            ~]# sed '/^UUID/=' /etc/fstab

!: 取反条件;地址定界取反;

~]# sed '/^UUID/!d' /etc/fstab

s///:支持使用其他分隔符;s@@@,s###;
            替换标记:
                g:行内全局替换;
                p:如果替换成功的行
                w: /PATH/TO/SOMEFILE:将替换成功的结果保存至指定文件中

~]# sed 's@^UUID@uuid@' /etc/fstab
            ~]# sed -n 's@r..t@&er@p' /etc/passwd
    
    高级编辑命令:

h:把模式空间中的内容覆盖至保持空间中;
        H:把模式空间中的内容追加至保持空间中;
        g:从保持空间取出数据覆盖至模式空间;
        G:从保持空间取出内容追加至模式空间;
        x:吧模式空间中的内容与保持空间中的内容进行互换;
        n:读取匹配到的行的下一行至模式空间;
        N:追加匹配到的行的下一行至模式空间;
        d:删除模式空间中的行;
        D;删除多行模式空间中的所有行;

Sed练习的更多相关文章

  1. sed的应用

    h3 { color: rgb(255, 255, 255); background-color: rgb(30,144,255); padding: 3px; margin: 10px 0px } ...

  2. 文本处理三剑客之sed命令

    第十八章.文本处理三剑客之sed命令 目录 sed介绍 sed命令常用选项 sed常用编辑命令 sed使用示例 sed高级语法 18.1.sed简介 sed全名stream editor,流编辑器,s ...

  3. 6-2 sed 命令

    1. sed : stream editor,流编辑器 是处理纯ASICC纯文本,按行琢行操作的. 编辑器有两种,行编辑器和全屏编辑器 sed:默认不编辑原文件,仅对模式空间中的数据做处理,而后.处理 ...

  4. 基本shell编程【3】- 常用的工具awk\sed\sort\uniq\od

    awk awk是个很好用的东西,大量使用在linux系统分析的结果展示处理上.并且可以使用管道, input | awk ''  | output 1.首先要知道形式 awk 'command' fi ...

  5. sed awk grep三剑客常用

    sed的常用用法: awk的常用用法: grep的常用用法: 除了列出符合行之外,并且列出后10行. grep -A 10 Exception kzfinance-front.log 除了列出符合行之 ...

  6. linux shell 用sed命令在文本的行尾或行首添加字符

    转自 http://www.cnblogs.com/aaronwxb/archive/2011/08/19/2145364.html 昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed ...

  7. Sed、Awk单行脚本快速参考

    文本间隔: # 在每一行后面增加一空行 sed G awk '{printf("%s\n\n",$0)}' # 将原来的所有空行删除并在每一行后面增加一空行. # 这样在输出的文本 ...

  8. sed awk 样例

    sed [options] '[action]' filename options: -n:一般sed命令会把所有数据都输出到屏幕,如果加入此选项,则只会把经过sed命令处理的行输出到屏幕. -e:允 ...

  9. linux sed命令详解

    简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的 ...

  10. sed命令详解

    搜索 纠正错误  添加实例 sed 功能强大的流式文本编辑器 补充说明 sed 是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时 ...

随机推荐

  1. python中sorted()和set()去重,排序

    前言 在看一个聊天机器人的神经网络模型训练前准备训练数据,需要对训练材料做处理(转化成张量)需要先提炼词干,然后对词干做去重和排序 words = sorted(list(set(words))) 对 ...

  2. 如何在Linux 中获取硬盘分区或文件系统的UUID?

    作为一个 Linux 系统管理员,你应该知道如何去查看分区的 UUID 或文件系统的 UUID.因为现在大多数的 Linux 系统都使用 UUID 挂载分区.你可以在 /etc/fstab 文件中可以 ...

  3. Linux的DNS配置1-DNS入门

    1.DNS简介 1)什么是“DNS”? DNS,简单地说,就是Domain Name System,翻成中文就是“域名系统” 2)DNS有什么用途? 在一个TCP/IP架构的网络(例如Internet ...

  4. Java中日期格式(String、Date、Calendar)的相互转换

    package day20190318; import java.text.ParseException; import java.text.SimpleDateFormat; import java ...

  5. day 07

    # 数据类型的相互转化# 字符编码# 文件操作 # 1.哪些类型可以转化为数字# res = int('10')# print(res)# res = int('-3')# print(res)# r ...

  6. 关于截取URL地址参数的方法

    JS获取URL中最后一个斜杠前面的内容 var url = window.location.href; var index = url.lastIndexOf("\/"); str ...

  7. MyBatis进阶(四)

    mapper.xml文件的编写 mapper.xml映射文件实现数据库和实体类之间的映射关系,定义操作数据库的sql语句. 主体部分 文件头部 <?xml version="1.0&q ...

  8. java中Map集合的常用方法 (转)

    原文地址:https://www.cnblogs.com/xiaostudy/p/9510763.html Map集合和Collection集合的区别 Map集合是有Key和Value的,Collec ...

  9. Redhat更换yum源

    redhat 默认自带的 yum 源需要注册,才能更新,所以对于我们来说需要替换掉redhat的yum源.下文更换为网易的. 删除原有的yum rpm -qa|grep yum|xargs rpm - ...

  10. Go-For Range 性能研究

    文章转载地址:https://www.flysnow.org/2018/10/20/golang-for-range-slice-map.html 如果我们要遍历某个数组,Map 集合.Slice 切 ...