shell脚本sed命令
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命令的更多相关文章
- Makefile Shell 脚本;sed命令
1. 在Makefile中想使用shell脚本,需要添加"@"符号,例如: @if [ -d xxx ]; then \ //-d 判 ...
- shell脚本——sed命令
sed 命令 作为行编辑器,对文件进行编辑(以行为单位进行编辑) sed编辑文件,却不改变原文件 sed工作原理: 指定一个文本文件,依次读取文本文件中的每行内容,读取到模式空间中,在模式空间中进行匹 ...
- linux 执行远程linux上的shell脚本或者命令以及scp 上传文件到ftp--免密码登陆
场景:在linux A 上执行Linux B上的shell脚本和命令 步骤1.设置ssh免登陆 1.SSH无密码登录 # 本地服务器执行(A机器):生成密钥对 ssh-keygen -t dsa -P ...
- shell 脚本控制命令的执行顺序
&&,||,(),{},& 五个符号的运用shell脚本执行命令的时候,有时候会依赖于前一个命令是否执行成功.而&&和||就是用来判断前一个命令执行效果的. 也 ...
- shell的奇淫巧技--自动化脚本(sed命令)
使用场景:前段时间交易所项目需要在服务器上用到 根据websocket推送价格数据,在交易所内进行下单撤单处理,但是由于有多个交易对,在服务器上部署时候,略显繁琐.(撮合引擎同样有此问题,可以一并解决 ...
- [shell基础]——sed命令
关于sed sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓 ...
- Shell之sed命令
sed用于一次性处理所有的编辑任务,尤为高效,为用户节省了大量的时间,sed适用于以下三种场合: 1.编辑相对交互文本编辑器而言太大的文件: 2.编辑命令太复杂,在交互式文本编辑器中难以输入的情况: ...
- shell的sed命令
sed命令用于在线编辑文本,它一次处理一行内容. 命令语法: sed [-n/e/f/r/i] [cmd] [InFile] 参数解释: 选项与参数: -n: quiet/silent,安静模式,经过 ...
- 用 shell 脚本做命令行工具扩展
问题的提出 公司开发机与远程服务器之间有严格的隔离策略,不能直接使用 ssh 登录,而必需通过跳板机.这样一来,本地与服务器之间的一些文件传输变得非常不便.经过咨询,运维教了我一招: $ nc -l ...
- linux shell 用sed命令在文本的行尾或行首添加字符
转自 http://www.cnblogs.com/aaronwxb/archive/2011/08/19/2145364.html 昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed ...
随机推荐
- 使用 SemanticKernel 对接 Ollma
前面的 2 篇文章已经介绍了 ollama 的基本情况.我们也已经能在本地跟 LLM 进行聊天了.但是如何使用代码跟 LLM 进行交互呢?如果是 C# 选手那自然是使用 SK (SemanticKer ...
- Windows安装redis并将redis设置成服务开机自启
Redis 作为一种缓存工具,主要用于解决高并发的问题,在分布式系统中有着极其广泛的应用,Redis 本身是应用于 Linux/Unix 平台的(部署在服务器上边),官方并没有提供 Windows 平 ...
- Java并发 —— 线程并发(二)
Java 锁 Java 中的锁是在多线程环境下,保证共享资源健康,线程安全的一种手段 线程操作某个共享资源之前,先对资源加一层锁,保证操作期间没有其他线程访问资源,操作完成后再释放锁 保持数据一致 ...
- .NET 模拟&编辑平滑曲线
本文介绍不依赖贝塞尔曲线,如何绘制一条平滑曲线,用于解决无贝塞尔控制点的情况下绘制曲线.但数据点不在贝塞尔曲线的场景. 在上一家公司我做过一个平滑曲线编辑工具,用于轮椅调整加减速曲线.基于几个用户可控 ...
- C#中 CancellationTokenSource的妙用
在.NET中,CancellationTokenSource.CancellationToken和Task是处理异步操作和取消任务的重要工具.本文将通过一些简单的例子,帮助你理解它们的用法和协作方式. ...
- 基于Java SpringBoot的音乐网站与分享平台
@ 目录 摘要 1. 研究背景 2.研究内容 3.系统功能 3.1前台首页功能模块 3.2在线听歌功能模块 3.3后台登录功能模块 3.4在线听歌管理模块 4.部分功能代码实现 5.源码分享(免费获取 ...
- 利用GmSSL制作SM2国密证书
Part 0前言 GmSSL是一个开源的密码工具箱,支持SM2/SM3/SM4/SM9/ZUC等国密(国家商用密码)算法.SM2国密数字证书及基于SM2证书的SSL/TLS安全通信协议,支持国密硬件密 ...
- idea中terminal的配置
idea中terminal的配置流程: File->settings->Tools->terminal 然后根据需要进行配置: 显示git操作界面 Shell path ==> ...
- Qt编写视频监控系统79-四种界面导航栏的设计
一.前言 最初视频监控系统按照二级菜单的设计思路,顶部标题栏一级菜单,左侧对应二级菜单,最初采用图片在上面,文字在下面的按钮方式展示,随着功能的增加,二级菜单越来越多,如果都是这个图文上下排列的按钮, ...
- Qt音视频开发23-通用视频控件
一.前言 在之前做的视频监控系统中,根据不同的用户需要,做了好多种视频监控内核,有ffmpeg内核的,有vlc内核的,有mpv内核的,还有海康sdk内核的,为了做成通用的功能,不同内核很方便的切换,比 ...