一般在实际使用编辑器的过程中 , 常需要执行替换文件中的字符串、移动、删除、与搜寻数据行等等动作。当然 , 一般交互式编辑器(如 vi、emacs)都能做得到上述功能 , 但文件一旦有大量上述编辑需求时 , 则用它们编辑十分没有效率。本文列举一些常用的sed的使用范例,以备不时之需。


替换数据

1.把开头/结尾为str1的行替换为str2:

sed -i 's/^str1.*/str2/'  filename  ###以str1开头
sed -i 's/.*str1$/str2/' filename ###以str1结尾
sed -i 's/.*str1.*/str2/' filename ###含有str1

2.将文件中含 "arr" 字符串的数据行中的 "str1" 字符串 , 替换成为 "str2" 字符串:

sed -e '/arr/s/str1/str2/g' filename  ##含有g说明是全局替换

3.将文件中第 5 行数据 , 替换成句子"hello world!!!"

sed -e '5c\hello world!!!' filename

4.将文件中 1 至 100 行 , 替换成如下两行:

how are you?
my name is feige.

命令如下:

sed -e '1,100c\
How are you?\
my name is feige.
' filename

删除数据

1.删除空行:

sed -e '/^ *$/d' filename   ### *号前面有一个空格符哦~

2.删除含有指定字符串str的行:

sed -f '/str/d' filename

移动数据

1.将文件中的前 100 数据 , 搬到文件中第 300 后输出。其命令如下:

sed -f mov.txt  targetfile  ## targetfile是要操作的文件,mov.txt里面放的是操作指令

其中mov.txt文档的内容为:

1,100{
H
d
}
300G

2.将from.txt文件中含 "phi" 字符串的数据行 , 移动到to.txt文件中储存。其命令如下:

sed -e '/phi/w to.txt'  from.txt

3.将 from.txt文件内容 , 移动至to.txt文件中含 "beta" 字符串的数据行。其命令如下:

sed -e '/beta/r  from.txt' to.txt

搜索数据

1.将文件中含 "omega" 字符串的数据输出:

sed -f grep.txt  targetfile

其中grep.txt的内容如下:

/omega/b
N
h
s/.*\n//
/omega/b
g
D

今天就更新这么多,以后会在本文中不定期更新有用的sed相关命令。

shell脚本基础——常用的sed命令举例的更多相关文章

  1. Linux Shell脚本编程--sed命令详解

    简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的 ...

  2. shell编程基础(七): 处理文件命令sed与awk

    一.sed(以行为单位处理文件) sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用非常普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑 ...

  3. Linux shell脚本基础学习详细介绍(完整版)二

    详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...

  4. Linux shell脚本基础学习详细介绍(完整版)一

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...

  5. Shell脚本基础学习

    Shell脚本基础学习 当你在类Unix机器上编程时, 或者参与大型项目如k8s等, 某些框架和软件的安装都是使用shell脚本写的. 学会基本的shell脚本使用, 让你走上人生巅峰, 才怪. 学会 ...

  6. shell脚本-基础

    shell脚本-基础 编程基础 程序是指令+ 数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell 程序提供了编程能力,解释执行. 计算运行二进 ...

  7. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

  8. shell脚本基础和grep文本处理工具企业应用2

    shell脚本编程:        编程语言的分类:        根据运行方式            编译运行:源代码-->编译器(编译)-->程序文件                优 ...

  9. 什么是Shell?Shell脚本基础知识详细介绍

    这篇文章主要介绍了什么是Shell?Shell脚本基础知识介绍,本文是一篇Shell脚本入门文章,在本文你可学到什么是Shell.有多少种Shell.一个Shell脚本代码实例,需要的朋友可以参考下 ...

随机推荐

  1. ios开发--第三方整理

    一:第三方插件 1:基于响应式编程思想的oc 地址:https://github.com/ReactiveCocoa/ReactiveCocoa 2:hud提示框 地址:https://github. ...

  2. React组件生命周期-正确执行初始化阶段的函数

    一. 二.代码 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset=&quo ...

  3. MakeObjectInstance的前世今生(关键是ECX的何时入栈以及Self指针何时存储的)

    高手们的文章有很大启发,但是总有些小错,也有没交代清楚的,以下是我的理解: 编译器编译MainWndProc的时候,它是一个正常Delphi普通函数,MakeObjectInstance对它做变换是运 ...

  4. Struts2笔记——初次框架配置

    1.Struts2简介   Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架.其全新的Struts 2的体系结构与S ...

  5. jvm 内存整理 -----学习

      分为:方法区 ,堆 ,栈 ,本地栈 ,程序计数器 1.程序计数器       保存当前线程执行的字节码行号指示器,解释器工作时,都是通过改变计数器的值来获取下一条程序指令,循环.异常.跳转.分支. ...

  6. jsp导出excel

    很多时候,我们都知道在java项目里面采用poi来导出excel很方便,但是如果你的项目采用的是jsp你可以用更简单的方法来导出.首先你要在顶部引入:<jsp:directive.page im ...

  7. [原]素数筛法【Sieve Of Eratosthenes + Sieve Of Euler】

    拖了有段时间,今天来总结下两个常用的素数筛法: 1.sieve of Eratosthenes[埃氏筛法] 这是最简单朴素的素数筛法了,根据wikipedia,时间复杂度为 ,空间复杂度为O(n). ...

  8. poj -3262 Protecting the Flowers (贪心)

    http://poj.org/problem?id=3262 开始一直是理解错题意了!!导致不停wa. 这题是农夫有n头牛在花园里啃花朵,然后农夫要把它们赶回棚子,每次只能赶一头牛,并且给出赶回每头牛 ...

  9. boot.img的分析

    1 boot.img  boot.img是由文件头信息,内核数据以及文件系统数据组成,它们之间非页面对齐部分用0填充 文件头信息的具体结构可以在system/core/mkbootimg/bootim ...

  10. HDU 4744 Starloop System(ZKW费用流)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4744 题意:三维空间n个点,每个点有一个wi值.每对点的距离定义为floor(欧拉距离),每对点之间建 ...