Shell系列(23)- 字符截取命令sed
简述
- 字符替换命令sed
- 和vi功能相似,但是vi是给用户用的,sed是给脚本用的
- sed是一种几乎包括在所有的UNIX平台(包括Linux)的轻量级流编辑器。s
- sed主要是用来将数据进行选取、替换、删除、新增的命令。
- 可以和管道符配合使用
格式
命令
sed [选项] '[动作]' [文件名]
选项
- -n 只输出经过sed处理过的行到屏幕;把进过sed处理的行输出到屏幕上,没加全部输出
- -e 允许一次应用多个动作;加了可以执行多条命令
- -i 直接修改文件,并且不由屏幕输出;没加,执行临时修改,加了永久修改文件
动作
- -a:追加,在当前行后添加一行或多行
- -c:行替换,用c后面的字符串替换原数据行
- -i:插入,在当前行插入一行或多行。
- -d:删除,删除指定的行
- -p:打印,输出指定的行
- -s:字符串替换,用一个字符串替换另外一个字符串;格式为"行范围s/旧字串/新字串/g"
例子
动作'p'+选项i-输出指定行
- sed '2p' zifu1.text
- #查看文件的第二行
- sed -n '2p' zifu1.text
- #没有-n,p没有意义,所有p的和选项-n一起使用

动作'd'-删除
- sed ’2d‘ zifu1.text
- #删除第二行的数据
- sed '2,4d' zifu1.text
- #删除第二行到第四行的数据,但不修改文件本身,加选项-i对文件进行操作

动作'a'-追加
- sed '2a 下面是基本信息' zifu1.text
- #在第二行后追加信息
- #格式'第几行+动作a+空格+追加信息'

动作'i'-插入
- sed '2i 这是基本信息' zifu1.text
- #在第二行前插入信息
- #格式'第几行+动作i+空格+插入信息'

动作'c'-替换
- sed '2c hello Shell' zifu1.text
- #第二行数据替换
- #格式'第几行+动作c+空格+替换信息'

动作's'+选项i+选项e-字符串替换
- sed 's/旧字串/新字串/g' 文件名
- g的作用把碰到所有符合条件的全部替换
- 基本格式
- 具体实例
- sed '2s/55/100/g' zifu1.text
- #在第二行中,把55换成100
- sed -i '2s55/100/g' zifu1.text
- #把数据写入文件

- sed -e 's/张三//g;s/王五//g' zifu1.text
- 同时把“张三”和“王五”替换为空

- sed 's/100/0/g' zifu1.text
- #不加行号时候,全文匹配替换

Shell系列(23)- 字符截取命令sed的更多相关文章
- shell编程-1.字符截取命令-列截取cut
- shell编程-1.字符截取命令-列截取awk+printf
- 第10章 Shell编程(2)_字符截取命令
2. 字符截取命令 2.1 cut字段提取命令(grep提取行,cut提取列) (1)cut命令:#cut [选项] 文件名 选项: -f 列号:提取第几列: -d 分隔符:按照指定分隔符分割列,默认 ...
- Linux命令集锦之·字符截取命令
时间:2018-11-15 记录:byzqy 字符截取命令: cut.printf.awk.sed cut $ cut [选项] 文件名 选项: -f 列号:提取第几列: -d 分隔符:按照指定分隔符 ...
- Shell系列(22)- 字符截取命令awk
简介 awk是一个数据处理工具,相比于sed常常作用于一整行的处理,awk则比较倾向于将一行分成数个"字段"来处理 awk的流程是依次读取每一行数据,读取完一行数据后,进行条件判断 ...
- linux常用命令 cut字符截取命令
cut 字符截取 cut [选项] 文件名 选项 -f 列号: 提取第几列 -d 分割符:按照指定的分隔符分割列 默认使用制表符("tab")进行分割 ssgao:Download ...
- [Shell]字符截取命令:cut, printf, awk, sed
------------------------------------------------------------------------------------------- [cut命令] ...
- Shell系列(21)- 字符截取命令printf
作用 printf是标准格式输出命令,控制输出格式,不会自动加入换行符.awk会用到该条命令 命令 printf '输出类型输出格式' 输出内容 #''双引号不能少,输出类型和输出格式之间没有空格 输 ...
- Shell系列(20)- 字符截取命令cut
前言 grep是按行提取:cut默认是通过制表符,按列提取,不能识别用空格作为分隔符 语法 cut [选项] [文件] 选项 -f :列号,截取哪几列数据,多个列号用逗号隔开:列与列之间默认用TAB制 ...
随机推荐
- C++ 基于STL的演讲比赛流程管理系统(sort算法+小型算法(accumulate)+内建函数对象+string字符串拼接+字符串截取+多个容器基础操作+与用户交互+文件的读写+保存+重建+整体文件数据的清空)
1 /* 2 比赛规则: 3 学校举行一演讲比赛,共12个人参加,比赛两轮,第一轮为淘汰赛 第二轮为决赛 4 每名选手都有对应的编号:如10001~10012 5 比赛方式:分组比赛 每组6人 6 第 ...
- HTML5(十二)——一文读懂 WebSocket 原理
一.WebSocket 由来 WebSocket 是一个持久化的协议,通过第一次 HTTP Request 建立连接之后,再把通信协议升级成 websocket,保持连接状态,后续的数据交换不需要再重 ...
- Linux 多进程编程实例(一)
文章目录 目标: main.c process1.c process2.c 目标: 一个进程,创建两个子进程,利用exec函数族使两个子进程执行不同的程序.子进程1执行ls -l命令后正常返回,子进程 ...
- springboot项目中进行XSS过滤
简单介绍 XSS : 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意 ...
- Spark Core核心----RDD常用算子编程
1.RDD常用操作2.Transformations算子3.Actions算子4.SparkRDD案例实战 1.Transformations算子(lazy) 含义:create a new data ...
- 深入理解Java类加载器(二):线程上下文类加载器
摘要: 博文<深入理解Java类加载器(一):Java类加载原理解析>提到的类加载器的双亲委派模型并不是一个强制性的约束模型,而是Java设计者推荐给开发者的类加载器的实现方式.在Java ...
- go逃逸分析
目录 1. 前言 2. 逃逸策略 3. 逃逸场景 3.1 指针逃逸 3.2 栈空间不足逃逸 3.3 动态类型逃逸 3.4 闭包引用对象逃逸 4 逃逸总结 5. 注意事项 1. 前言 所谓的逃逸分析(E ...
- 温故知新:老铁,WeakReference了解一下?
本文供稿--大师兄 弱引用是个什么鬼?大白话说就是不那么强的引用(哈哈,纯属玩笑,实际可不是这样滴),那强引用又是个什么鬼?他们有什么用处?问题有点迷,君阅完这篇文章后或许你心中就有答案了-- 什么是 ...
- Asp.NetCore3.1 WebApi 获取配置json文件中的数据
下面只是做一个简单的测试: 1:定义好appsetting.Json文件的配置信息如下: { "Logging": { "LogLevel": { " ...
- C# 简单粗暴的毫秒转换成 分秒的格式
C# 简单粗暴的毫秒转换成 分秒的格式 1:code(网络上很多存在拷贝或者存在bug的或者不满足自己的要求) 1 public static string RevertToTime(double m ...