Sed 是一个脚本型的编译器,全称StreamEDitor,即流编辑器是非交互式的编辑器

sed 原理简析
sed 以行为处理单位,每次从标准输入/文本获取一行信息,存储到其“ 模式空间 ”(pattern space,实际上是一个临时缓冲区)中,在这个模式空间中,sed 就会将脚本中的处理命令做完,然后就将处理完的数据输出到标准输出(屏幕)

sed 的特点

  • 非交互,基于模式匹配的过滤及修改文本
  • 逐行处理,所以那些对舒适的交互式编辑而言太大的文件使用sed 会显得格外有优势
  • 可实现对文本的输出、删除、替换、复制、剪切、导入、导出等各种编辑操作
  • 脚本化

语法   sed [-hnV] [-e<script>] [-f<script文件>] [文本文件]

参数说明

  • -e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件,允许多重编辑。
  • -f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
  • -i直接在原文件中操作。使用 -i 选项时,都要使用 "-i.***" 形式备份  例如:-i.bak!
  • -r在脚本中使用扩展正则表达式。
  • -n或--quiet或--silent 仅显示script处理后的结果。
  • --version 显示版本信息。
  • -h或--help 显示帮助。

动作说明

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

 练习实例

sed -n '3p' text.txt  匹配text.txt文档第3行的内容

sed -n '2,5p' text.txt  匹配text.txt文档第 2至5行的内容

sed -n '/a/,3p'   text.txt   匹配text.txt文档首个a 及下面3行之间的内容

sed -n '/a/,$p'   text.txt   匹配text.txt文档首个a 至行尾内容

sed -n '/a/,/b/p'   text.txt   匹配text.txt文档首个a 下面首个b之间的内容

shell脚本sed命令的更多相关文章

  1. Makefile Shell 脚本;sed命令

    1. 在Makefile中想使用shell脚本,需要添加"@"符号,例如: @if [ -d xxx ]; then \                        //-d 判 ...

  2. shell脚本——sed命令

    sed 命令 作为行编辑器,对文件进行编辑(以行为单位进行编辑) sed编辑文件,却不改变原文件 sed工作原理: 指定一个文本文件,依次读取文本文件中的每行内容,读取到模式空间中,在模式空间中进行匹 ...

  3. linux 执行远程linux上的shell脚本或者命令以及scp 上传文件到ftp--免密码登陆

    场景:在linux A 上执行Linux B上的shell脚本和命令 步骤1.设置ssh免登陆 1.SSH无密码登录 # 本地服务器执行(A机器):生成密钥对 ssh-keygen -t dsa -P ...

  4. shell 脚本控制命令的执行顺序

    &&,||,(),{},& 五个符号的运用shell脚本执行命令的时候,有时候会依赖于前一个命令是否执行成功.而&&和||就是用来判断前一个命令执行效果的. 也 ...

  5. shell的奇淫巧技--自动化脚本(sed命令)

    使用场景:前段时间交易所项目需要在服务器上用到 根据websocket推送价格数据,在交易所内进行下单撤单处理,但是由于有多个交易对,在服务器上部署时候,略显繁琐.(撮合引擎同样有此问题,可以一并解决 ...

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

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

  7. Shell之sed命令

    sed用于一次性处理所有的编辑任务,尤为高效,为用户节省了大量的时间,sed适用于以下三种场合: 1.编辑相对交互文本编辑器而言太大的文件: 2.编辑命令太复杂,在交互式文本编辑器中难以输入的情况: ...

  8. shell的sed命令

    sed命令用于在线编辑文本,它一次处理一行内容. 命令语法: sed [-n/e/f/r/i] [cmd] [InFile] 参数解释: 选项与参数: -n: quiet/silent,安静模式,经过 ...

  9. 用 shell 脚本做命令行工具扩展

    问题的提出 公司开发机与远程服务器之间有严格的隔离策略,不能直接使用 ssh 登录,而必需通过跳板机.这样一来,本地与服务器之间的一些文件传输变得非常不便.经过咨询,运维教了我一招: $ nc -l ...

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

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

随机推荐

  1. MySQL之根据经纬度计算距离

    可以在MySQL层面使用自定义计算函数来使用 CREATE DEFINER=`xxx`@`%` FUNCTION `get_distance`( lat1 float,lon1 float,lat2 ...

  2. 安装cnpm时报错

    报错:npm WARN deprecated socks@1.1.10: If using 2.x branch, please upgrade to at least 2.1.6 to avoid ...

  3. 2023-05 多校联合训练 ZJNU站 热身赛

    猫猫接币币 给定两个容量分别为a和b的盒子,已知第i秒天上会掉下i个金币,你会从第1秒开始接金币,每秒钟你可以选择任意一个盒子接金币,但是不能不选,你必须使得两个盒子刚好装满,请问是否存在某个时刻,使 ...

  4. noip2024

    NOIP2024 游记 考试之前一直有很多话想在游记里说,但考完后又不知道该说些什么.这六个月的集训时光仿佛像一场梦一般. 怒砍\([60, 100] + 0 + 0 + 0\) 作为一个只学了不到一 ...

  5. ai大模型流式输出------基于SSE协议的长连接实现

    传统的http1.0请求开发,已经满足了我们日常的web开发.一般请求就像下图这样子,客服端发起一个请求(触发),服务端做出一个响应(动作): 有时会有诸如实时刷新,实时显示的场景,我们往往是客户端定 ...

  6. 分享一个纯Python开发的系统程序,基于VSCode + WxPython开发的跨平台应用系统

    本项目是基于 wxPython 开发的 GUI 应用,主要用于管理基础框架内容,包括用户.角色.机构.权限.日志.菜单.字典.附件.通用编码规则.配置管理等基础框架内容. 愿景是构建一个基于Pytho ...

  7. maven 分离打包的技术

    1.概要 我们在构建springboot 程序的时候,可以将所有的文件打包成一个大的文件,这个使用起来还是很方便的,但是有些情况下不是很方便,比如 程序需要经常更新的时候,通过网络传输就比较慢,还有比 ...

  8. 前端好用API之scrollIntoView

    前情 在前端开发需求中,经常需要用到锚点功能,以往都是获取元素在滚动容器中的位置再设置scrollTop来实现的. scrollIntoView介绍 scrollIntoView()方法将调用它的元素 ...

  9. VTK 9.2 Qt 5.14 安装及错误处理

    参考VTK9.1.0在Windows10+VS2019+Qt 5.15.2环境下编译安装以及VTK应用于QT_vtk-qt安装包_isongxw的博客-CSDN博客 安装注意:编译release和de ...

  10. Shiro简单入门+个人理解

    身为一个刚刚进入开发行业的学生,进入公司就开始了Shiro框架的应用,特此在这里写下收获. Shiro是apache旗下一个开源安全框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证,权 ...