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

一些基础练习见sed命令基础2

用法:

sed [option] script inputfile

常用的option

  -n:不输出模式空间的内容到屏幕

  -e:多点编辑

  -f /path/script_file:从指定文件中读取编辑脚本

  -r:支持使用扩展的正则表达式

  -i[.bak] [备份文件并]原处编辑

script:

  地址定界;命令

常用命令:

d:删除模式空间的行并立即启动下一轮循环

p:打印当前模式空间的内容,并追加到默认输出之后

a[\]text:在指定行后面追加文本支持使用\n进行多行追加

i[\]text:在行前插入文本

c[\]text:替换行为单行或多行文本

w /path/file/:保存模式空间匹配的行至指定文件

r /path/file:读取指定文件的文本至模式空间中匹配到的行后

=:为模式空间中的行打印行号

!:模式空间中匹配行取反处理

地址定界:

  1. 如果不给地址,则对全文逐行进行处理
  2. 单地址:
        N:指定的行(N为数字)

        /pattern/:被此处模式匹配的每一行(关键字,正则)

      3. 地址范围:

    N,M:指定处理从N行到M行

     N,+M:指定处理从N行到N+M行

      /pat1/,/pat2/:指定处理从有第一个/pat1/到第二个/pat2/的行

      N,/pat1/:指定处理从N行到匹配/pat1/的行

     4. ~:步进处理

      1~2:处理奇数行

     2~2:处理偶数行

查找替换模式:

s/匹配内容/替换内容/[g|p|w]

支持替换,支持使用其他分隔符,如:s@@@ s###等

替换标记:

g:行内全局替换

p:显示替换成功的行

w /path/file:将替换成功的行保存到文件

接下来我们举例说明使用方法:

在我们下列的演示中,只要不加-i选项,都只是将修改的数据打印咋屏幕上,并不是直接修改源文件

删除某行

sed "3,5d" /etc/passwd

sed "\$d" /etc/passwd

sed "1~2d" /etc/passwd

显示某行

sed -n "2,5p" /etc/passwd

sed -n -e "3,/root/=" -e "3,/root/p" /etc/passwd

sed -n "/root/,5p" /etc/passwd

添加某行

sed '/root/a\superman' /etc/passwd行后

sed '/root/i\superman' /etc/passwd 行前

sed "1,3a\HELLO" /etc/passwd

替换某行

sed '/root/c\superman' /etc/passwd 代替行

sed '/root/c\superman\nHello\nChinese' /etc/passwd

替换一行的某一部分

sed "1,20s/root/HEHEHE/g" /etc/passwd

sed -n "/nologin/s/nologin/READ/gp" /etc/passwd

sed命令基础的更多相关文章

  1. sed命令基础2

    我在sed命令基础里面说了一下sed的基础用法,sed还有一些高级用法,由于我也是在学习中,写的博客可能会有想不到的地方,有问题希望大家指出. sed的高级用法主要在于两个空间的使用,模式空间和保持空 ...

  2. Sed命令基础操作

    sed用法的小技巧 (1)在查找范围时不需要用到替换,所以不用s; (2)当只需要打印被修改行时,可以使用-n 和 –p 选项,注意二者一定配合使用: 3种方式指定命令行上的多重指令 (1)用逗号分隔 ...

  3. Linux安全基础:sed命令的使用

    sed 是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作. Sed本质上是一个编辑器,但是它是非交互式的,这点与VIM不同:同时 ...

  4. [shell基础]——sed命令

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

  5. Linux shell基础(五)sed命令

    一.sed命令 sed是一种强大的流式编辑器 (stream editor for filtering and transforming text),它能够完美的使用正则表达式,逐行处理文本并把结果显 ...

  6. 『忘了再学』Shell基础 — 30、sed命令的使用

    目录 1.sed命令说明 2.行数据操作 (1)查看文件中的数据 (2)删除文件中的数据 (3)向文件中追加数据 (4)向文件中插入数据 (5)修改文件中的多行数据(删除,追加,插入) (6)替换文件 ...

  7. Linux实战教学笔记04:Linux命令基础

    第四节:Linux命令基础 标签(空格分隔):Linux实战教学笔记 第1章 认识操作环境 root:当前登陆的用户名 @分隔符 chensiqi:主机名 -:当前路径位置 用户的提示符 1.1 Li ...

  8. linux sed命令详解

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

  9. sed命令

    sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为:         sed ...

随机推荐

  1. Windows10系统下,彻底删除卸载MySQL

    本文介绍,在Windows10系统下,如何彻底删除卸载MySQL... 1>停止MySQL服务开始->所有应用->Windows管理工具->服务,将MySQL服务停止.2> ...

  2. 编译安装 Nginx1.12.1

    本文描述Nginx 的源码编译安装过程 ############## 一.安装OpenSSL ###################### 下载地址 https://www.openssl.org/s ...

  3. servlet请求编码与响应编码问题(编码不一致可能会导致乱码)

    html中的编码 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&g ...

  4. Jmeter之解决烦人的中文乱码问题

    Jmeter是一款国外开源工具,所以就跟LR一样,对中文的支持不是很好,经常会有同学录制脚本后回放或者是发送HTTP请求,看到响应报文里面有乱码! 那如何才能解决这个问题呢?我们分2个情况来分析: 一 ...

  5. linux shell 之在线文本编辑sed

    sed命令 文件编辑 sed是一种文本编辑命令,通过终端读取文件数据到缓冲区,然后通过sed编辑文本,在输出到指定的文件,sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用 ...

  6. 基于linux vim环境python代码自动补全

    (一)简述 在使用vim编写python文件的过程中,默认的vim不会实现代码补全功能,在写程序或者是改程序的时候不是很方面,很容易出错,但是vim提供了各种插件,其中包括这个python文件的自动补 ...

  7. WinFom解决最小化最大化后重绘窗口造成闪烁的问题

    网上两种方案(可协同) 1 设置双缓冲: SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWm ...

  8. spring-session 共享

    Spring session 共享 一.引入依赖 <dependency> <groupId>redis.clients</groupId> <artifac ...

  9. Spring详解(五)------AOP

    这章我们接着讲 Spring 的核心概念---AOP,这也是 Spring 框架中最为核心的一个概念. PS:本篇博客源码下载链接:http://pan.baidu.com/s/1skZjg7r 密码 ...

  10. C#设计模式(4)-抽象工厂模式

    引言 上一篇介绍了设计模式中的简单工厂模式-C#设计模式(3)-工厂方法模式,本篇将介绍抽象工厂模式: 抽象工厂模式简介 抽象工厂模式(AbstractFactory):提供一个创建一系列相关或相互依 ...