简述

  • 字符替换命令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的更多相关文章

  1. shell编程-1.字符截取命令-列截取cut

  2. shell编程-1.字符截取命令-列截取awk+printf

  3. 第10章 Shell编程(2)_字符截取命令

    2. 字符截取命令 2.1 cut字段提取命令(grep提取行,cut提取列) (1)cut命令:#cut [选项] 文件名 选项: -f 列号:提取第几列: -d 分隔符:按照指定分隔符分割列,默认 ...

  4. Linux命令集锦之·字符截取命令

    时间:2018-11-15 记录:byzqy 字符截取命令: cut.printf.awk.sed cut $ cut [选项] 文件名 选项: -f 列号:提取第几列: -d 分隔符:按照指定分隔符 ...

  5. Shell系列(22)- 字符截取命令awk

    简介 awk是一个数据处理工具,相比于sed常常作用于一整行的处理,awk则比较倾向于将一行分成数个"字段"来处理 awk的流程是依次读取每一行数据,读取完一行数据后,进行条件判断 ...

  6. linux常用命令 cut字符截取命令

    cut 字符截取 cut [选项] 文件名 选项 -f 列号: 提取第几列 -d 分割符:按照指定的分隔符分割列 默认使用制表符("tab")进行分割 ssgao:Download ...

  7. [Shell]字符截取命令:cut, printf, awk, sed

    ------------------------------------------------------------------------------------------- [cut命令] ...

  8. Shell系列(21)- 字符截取命令printf

    作用 printf是标准格式输出命令,控制输出格式,不会自动加入换行符.awk会用到该条命令 命令 printf '输出类型输出格式' 输出内容 #''双引号不能少,输出类型和输出格式之间没有空格 输 ...

  9. Shell系列(20)- 字符截取命令cut

    前言 grep是按行提取:cut默认是通过制表符,按列提取,不能识别用空格作为分隔符 语法 cut [选项] [文件] 选项 -f :列号,截取哪几列数据,多个列号用逗号隔开:列与列之间默认用TAB制 ...

随机推荐

  1. Git (10)-- 打标签(git tag)

    @ 目录 1.列出标签 2.创建标签 2.1.附注标签 2.2.轻量标签 3.后期打标签 4.共享标签 5.删除标签 6.检出标签 超详细 Git 图文版小白教程(持续更新) 像其他版本控制系统(VC ...

  2. stm32 connot enter debug mode

    dap 可以发现设备,stlink jlink 均无法发现设备,但是都不能下载.connot enter debug mode ,发现是vdda 未连接

  3. 题解 Star Way To Heaven

    传送门 这整场都不会--这题想二分不会check 其实check很好写,考虑一个mid的实际意义 即为check在不靠近每个star及边界mid距离内的前提下,能不能到达\((n,m)\) 其实可以转 ...

  4. python 日期、时间处理,各种日期时间格式/字符串之间的相互转换究竟是怎样的?

    模块函数说明 ''' date 日期对象,常用的属性有year,month,day time 时间对象,常用的属性有hour,minute,second,毫秒 datetime 日期时间对象,常用的属 ...

  5. C#实现http协议GET、POST请求

    using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Ne ...

  6. 进程CPU、内存过高问题查找

    1.定位进程 找出占用CPU最高的10个进程 ps aux | sort -k3nr | head -n 10 查看占用内存最高的10个进程 ps aux | sort -k4nr | head -n ...

  7. 多线程编程<五>

    1 /** 2 * 中断线程:当线程由于调用sleep(),join(),wait()而暂停时,如果中断它,则会收到一个InterruptedException异常. 3 * 调用Thread.isI ...

  8. Nginx location 和 proxy_pass路径配置详解

    目录 一.Nginx location 基本配置 1.1.Nginx 配置文件 1.2 .Python 脚本 二.测试 2.1.测试 location 末尾存在 / 和 proxy_pass末尾存在 ...

  9. Git&Github介绍

    git&github 什么是GIT 是一个源代码管理工具 源代码为什么要管理起来? 你写的东西就叫源代码,第三方的库和框架都不算. 让源代码可以被追溯,主要记录每次变更了什么,谁主导这次变化. ...

  10. 前端~定位属性position(relative、absolute、fixed)的分析

    前端~定位属性position(relative.absolute.fixed)的分析 1,简单了解: relative:移动自身时,参考自身的原来位置而移动,移动子元素(子元素设置了absolute ...