03-Sed基础语法及例子
1 Sed语法及举例
在实际使用sed过程中经常使用字符串的替换、删除、查找等操作。Linux中的编辑器Vi、GVIM、emacs等都可以进行上述操作,但是大量进行操作的时候,效率很低。
地址参数 {
命令参数1
命令参数2
...
}
**对于符合地址参数的数据,依次执行命令参数1,命令参数2**
1.1 替换文件中的数据
- 表示字符串替换的参数为s;
- 表示替换数据行、数据区的参数为c
- \表示换行
例1
将文件中含有machine字符串的数据行中的phi替换为beta字符串
# /machine/ -- 匹配所有machine所在行
# s -- 表示替换
sed -e '/machine/s/phi/beta/g' input.dat
例2
将文件中第5行数据替换为句子 Those who in quarrels interpose,mnust often wipea blood nose.
sed -e '5c \
Those who in quarrels interpose,mnust often wipea blood nose.'
input.dat
例3
将文件中的1-100行替换为下面两行
# 替换内容
How are you?
data be deleted
sed -e '1,100c \
How are you? \
data be deleted !
' input.dat
1.2 移动文件中的数据
sed中的hold space可以暂存编辑中的数据,用函数参数w将文件数据搬动到文件内存储,或者使用函数参数r将文档中的内容搬到文件内。
Hold space是sed用来暂存pattern space内数据的缓存器,当sed执行函数参数h,H时会将pattern space中的资料暂存到hold space;执行函数参数x,g,G时会将暂存的资料取到pattern space。
例1
将文件中前100数据,搬到文件第300行之后。
sed -f mov.scr input.dat
# scr中的内容
1,100 {
H
d
}
300G
其中
1,100{
H
d
}
表示先将前100行的数据,先存储到hold space(H),然后将pattern space中的内容进行删除。
300G
300G表示,将hold space中的内容,添加到pattern space(G)的第300行输出
例2
将文件中含有phi字符串的行,搬运至mach.inf文件中存储。
# w 表示将文档搬运到另一个文档进行存储
sed -e '/phi/w mach.inf' file
例3
将mach.inf文档中的内容,搬至文件中含beta字符串的数据行
# r 表示将一个文件搬运到另一个文件
sed -e '/beta/r mach.inf' file
1.3 删除文件中的数据
使用函数参数d 或者是 D可以进行删除
例1
删除文档中所有的空白行
# N 表示将空白行的下一行资料添加至pattern space
# /^$/D 表示删除空白行
sed -e '/^$/{
N
/^$/D
}' 文档
1.4 查找文件中的数据
sed -f gp.scr file
/omega/b
N
h
s/.*\n/
/omega/b
g
D
03-Sed基础语法及例子的更多相关文章
- sed基础语法
sed 太强大了 参考博客如下:https://www.cnblogs.com/ctaixw/p/5860221.html sed: Stream Editor文本流编辑,sed是一个“非交互式的”面 ...
- mobx学习笔记03——mobx基础语法(decorator修饰器)
在声明阶段实现类与类成员注解的一种语法. function log(target){ const desc = Object.getOwnPropertyDescriotors(target.prot ...
- 025 01 Android 零基础入门 01 Java基础语法 03 Java运算符 05 if条件结构
025 01 Android 零基础入门 01 Java基础语法 03 Java运算符 05 if条件结构 本文知识点:Java中的if条件结构语句 关系运算符回顾 生活中根据条件进行判断采取不同操作 ...
- 009 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 03 什么是变量?
009 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 03 什么是变量? 什么是变量? 形象化的生活中的例子理解什么是变量以及变量的三个元素 我们可以根据客人要求 ...
- 071 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 03 综合案例-数组移位-显示数组当中所有元素的的方法
071 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 03 综合案例-数组移位-显示数组当中所有元素的的方法 本文知识点:综合案例-数组移位-显示数组当中所有元素 ...
- 056 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 03 一维数组的应用
056 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 03 一维数组的应用 本文知识点:数组的实际应用 程序开发中如何应用数组? 程序代码及其运行结果: 不同数据类 ...
- 041 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 03 案例演示while循环的使用——求1到5的累加和
041 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 03 案例演示while循环的使用--求1到5的累加和 本文知识点:案例演示while循环的使用1 ...
- 036 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 03 嵌套if结构
036 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 03 嵌套if结构 本文知识点:Java中的嵌套if结构 什么是嵌套if结构? 概念: 嵌套if结构 ...
- 033 01 Android 零基础入门 01 Java基础语法 03 Java运算符 13 运算符和表达式知识点总结
033 01 Android 零基础入门 01 Java基础语法 03 Java运算符 13 运算符和表达式知识点总结 本文知识点:运算符和表达式知识点总结 前面学习的几篇文都是运算符和表达式相关的知 ...
- 032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例——闰年问题
032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例--闰年问题 本文知识点:运算符和if-else条件语句的综合案例 ...
随机推荐
- LeetCode------移动零(5)【数组】
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/move-zeroes 1.题目 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末 ...
- app自动化测试环境安装
一.环境依赖 app自动化测试环境如下: appium服务 第三方库appium-python-client 手机或模拟器 java环境jdk1.8 android环境 二.appium服务安装 1. ...
- Eureka Server 实现在线扩容
Eureka Server 实现在线扩容 作者:Grey 原文地址: 博客园:Eureka Server 实现在线扩容 CSDN:Eureka Server 实现在线扩容 需求 Eureka 是 Sp ...
- 云原生之旅 - 6)不能错过的一款 Kubernetes 应用编排管理神器 Kustomize
前言 相信经过前一篇文章的学习,大家已经对Helm有所了解,本篇文章介绍另一款工具 Kustomize,为什么Helm如此流行,还会出现 Kustomize?而且 Kustomize 自 kubect ...
- VUE学习2
目录分析 public目录 index.html是起始的html文件 # 这是关键 <div id="app"></div> src目录 main.js是V ...
- 我服了!SpringBoot升级后这服务我一个星期都没跑起来!(上)
最近由于各方面的原因在准备升级 Spring Cloud 和 Spring Boot,经过一系列前置的调研和分析,决定把Spring Boot 相关版本从 2.1.6 升级到 2.7.5,Spring ...
- ctfshow web入门部分题目 (更新中)
CTFSHOW(WEB) web入门 给她 1 参考文档 https://blog.csdn.net/weixin_51412071/article/details/124270277 查看链接 sq ...
- php7怎么安装memcache扩展
php7安装memcache扩展 1.下载文件,解压缩 memcache windows php7下载地址: https://github.com/nono303/PHP7-memcache-dll ...
- 解决python3解压文件名乱码问题(unzip)
看来很多文章,不过我觉得最有效的还是改源码,因为我用的sublime text 3有插件Anaconda可以很方便的跳转到源码文件,你也可以入python3 的安装目录, 搜索 zipfile.py这 ...
- ArcObjects SDK开发 003 宏观角度看ArcObjects SDK
1.为什么要宏观上看ArcObjects SDK ArcObjects SDK库是一个非常庞大复杂COM组件集合,ArcGIS10.0有1000多个枚举.90多个结构体.5000多个接口以及4000多 ...