简述

  • 字符替换命令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. SQL 练习5

    查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩 SELECT Student.SId,Sname,t.[平均成绩] from Student , (SELECT sid , AVG ...

  2. NOIP 模拟 $14\; \text{抛硬币}$

    题解 \(by\;\;zj\varphi\) 签到题,自己看题解 Code #include<bits/stdc++.h> #define ri register signed #defi ...

  3. 获取访问者真实ip地址?我觉得不可能

    我们真的能通过请求来获取用户真实的ip地址嘛? 答案是不能,如果能,肯定是我学的不够深入,欢迎交流指正. 那么写这篇文章的意义是什么?我们接着往下看. IP地址相当于电脑在网络上的身份证,但事实上IP ...

  4. 【Tools】SSHUsage

    SSH(Secure Shell 的缩写)是一种网络协议,用于加密两台计算机之间的通信,并且支持各种身份验证机制.还能对操作者进行认证(authentication)和授权(authorization ...

  5. mongoose 更新数据时不验证数据(忽略设定的集合规则)的问题

    问题: mongoose 更新数据时不验证数据(忽略设定的集合规则)的问题 参考: http://www.mongoosejs.net/docs/api.html#updateone_updateOn ...

  6. java 文件上传(图片上传)

    1.FTP工具类 代码如下: package com.taotao.common.utils; import java.io.File; import java.io.FileInputStream; ...

  7. Jsp:taglib实现

    web应用的结构: web.xml classes   diegoyun OutputTag.class WEB-INF src diegoyun OutputTag.java mytag tlds ...

  8. 多线程Synchronized的两种锁

    Synchronized的作用: 能够保证在同一时刻最多只有一个线程执行该段代码,以达到保证并发安全的效果 Synchronized的两个用法: 1)对象锁 包括方法锁(默认锁对象为this当前实例对 ...

  9. hdfs中数据迁移

    1.hdfs集群间数据迁移 hadoop distcp hdfs://192.128.112.66:8020/user/hive/warehouse/data.db/dwi_xxxx_d  /user ...

  10. Tensorflow之TFRecord的原理和使用心得

    本文首发于微信公众号「对白的算法屋」 大家好,我是对白. 目前,越来越多的互联网公司内部都有自己的一套框架去训练模型,而模型训练时需要的数据则都保存在分布式文件系统(HDFS)上.Hive作为构建在H ...