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. 连上Wi-Fi 热点自动弹窗的实现方法

    当我们连上某个热点, 自动弹出登录窗口的专业名称叫做: Captive portal 原理, 实现方式有三种 1 : dns 跳转, 在热点上面实现配置, 把所有dns请求返回都配置为:服务器地址 : ...

  2. ​'JAVAC' 不是内部或外部命令的解决方法

    ​'JAVAC' 不是内部或外部命令解决方法.. 在cmd里边输入javac就会提示”'JAVAC' 不是内部或外部命令,也不是可运行的程序 或批处理文件..此时原因分析: 一.确定是否安装了jdk ...

  3. vue.js基础知识篇(4):过滤器、class与style的绑定2

    代码下载:网盘 欢迎私信 第一章:过滤器 过滤器是对数据进行处理并返回结果的函数. 1.语法 语法是使用管道符"|"进行连接.过滤器可以接收参数,跟在过滤器后面,带引号的参数被当做 ...

  4. Spring Boot之Hello World

    Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不 ...

  5. [知了堂学习笔记]_纯JS制作《飞机大战》游戏_第2讲(对象的实现及全局变量的定义)

    整体展示: 一.全局变量 /*===================玩家参数==========================*/ var myPlane; //英雄对象 var leftbtn = ...

  6. JVM内存结构和6大区域

    摘自 http://www.iteye.com/news/30350 对于我们一般理解的计算机内存,它算是CPU与计算机打交道最频繁的区域,所有数据都是先经过硬盘至内存,然后由CPU再从内存中获取数据 ...

  7. 使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序

    使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序 不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻 ...

  8. JavaScript在应用中的技巧(二)

    ==,===运算符和强制转换 先看个表达式: "1.0e0" == { valueOf: function() { return true; } }; 是的,这个结果可能有点出乎意 ...

  9. Java环境的搭建

    一.JDK的下载 JDK又称Java SE,可以从Oracle公司的官网上https://www.oracle.com/index.html下载. 1.打开Oracle官网.将光标移到[Menu]-[ ...

  10. [Unity 设计模式]桥接模式(BridgePattern)

    1.前言 继上一讲IOC模式的基础上继续本讲桥接模式,笔者感觉桥接模式是23种设计模式中桥接模式是最好用但也是最难理解的设计模式之一,23中设计模式就好武侠剧中一本武功秘籍,我们在工作过程中想要熟练运 ...