官方定义:

  Linux sed命令是利用script来处理文本文件。

  sed可依照script的指令,来处理、编辑文本文件。

  Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

--

介绍动作属性-需要时回来查看就可以,不需要死记硬背

  a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~

  c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!

  d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;

  i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

  p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~

  s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

--

文本的搜索并替换

  使用 sed 匹配文件内容,直接修改,注意这个会直接修改源文件。

  格式:

    sed -i "s/查找字段/替换字段/g" grep 查找字段 -rl 路径

  例如:

    1:  将文件1.txt内的文字“garden”替换成“mirGarden”

       # sed -i "s/garden/mirGarden/g" 1.txt   //sed -i 很简单
 
    2:  将当前目录下的所有文件内的“garden”替换成“mirGarden”
       # sed -i "s/garden/mirGarden/g" `ls` //其实也就是ls出多个文件名而已
 
--
以行为单位的新增和删除
 
  在平常文本中,我一般是使用vim进行编辑文本,但是如果有一个100W行的文件,vim岂不是原地爆炸了,sed命令可以很好的执行这些动作
  例如
   

将index.php 的内容列出并且列印行号,同时,请将第 2~5 行删除!

#:~/demo$ nl index.php | sed '2,5d'

  

  sed 的动作 '2,5d', d就是删除动作,所以删除了2-5行,需要注意的是,sed后面接的动作,必须以 '' 号扩住。

只要删除第 2 行

#~/demo$ nl index.php | sed '2d'

要删除第 3 到最后一行

#~/demo$ nl index.php | sed '3,$d'

--

以行为单位的替换

  将第2-5行的内容取代成为『我是文本』呢?

~/demo$ nl index.php | sed '2,5c 我是文本'

  c 动作就是有取代的意思,透过这个方法我们就能够将数据整行取代了.

--

其他的用法会在之后慢慢工作和学习中补充。

2018/03/23 每日一个Linux命令 之 sed的更多相关文章

  1. 2018/03/08 每日一个Linux命令 之 chattr/lsattr

    每日一个Linux命令 2018-03-08 Linux 命令 chattr/lsattr chattr [-参数] [+/-属性] [文件或者目录] 经过今天没有对铃,粥熬糊了,我就知道...... ...

  2. 2018/03/07 每日一个Linux命令 之 cat

    每日一个Linux命令 2018-03-07 Linux 命令 cat cat [-参数] fileName 在之前的Linux使用中 cat 命令一直作为文本输出指令来使用,很少可以深入学习的该命令 ...

  3. 2018/03/11 每日一个Linux命令 之 top

    每日一个Linux命令 之 top   今天在公司测试服务器上跑了一个我写的功能[本地测试过的],但是不知道怎么跑了个无限死循环出来,一个文件的体积在不停的变大,如果不管的话这能行? 上去一看,PHP ...

  4. 2018/03/10 每日一个Linux命令 之 find

    每日一个Linux命令 2018-03-10 Linux 命令 find find [查找目录] [定义条件]   今天很累了,本来不想写了,但想到自己订的学习计划必须坚持下去,每天完成.   fin ...

  5. 2018/03/10 每日一个Linux命令 之 cksum

    每日一个Linux命令 2018-03-10 Linux 命令 cksum cksum [文件]  今天楼下的一个大妈去世了,不仅感叹,现如今,真的和以前不一样了,楼上楼下都不知道住的是谁? cksu ...

  6. 2018/03/09 每日一个Linux命令 之 chgrp/chown

    每日一个Linux命令 2018-03-09 Linux 命令 chgrp/chown chgrp [-参数] [文件或者目录] chown [-参数] [文件所有者]:[文件所属群组] [文件或者目 ...

  7. 2018/03/27 每日一个Linux命令 之 cron

    Cron 用于配置定时任务. -- 环境为 Ubuntu16-04 -- 先说说怎么配置一个简单的定时任务.直观的可以看到效果. 之前在网上查找资料,对Shell编程不熟悉的实在是很头疼,走了不少弯路 ...

  8. 2018/03/31 每日一个Linux命令 之 date

    date 命令主要用于查看和修改时间和时区 -- 这里主要学习基本的查看和设置时间和时区的方法. 直接显示日期 date '+%D' 效果 vagrant@hong:~$ date '+%D' 03/ ...

  9. 2018/03/25 每日一个Linux命令 之 df

    Linux df命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计. 就像在windows下打开我的电脑一样会统计各个磁盘一样的情况 主要用于查看磁盘空间占用情况 -- [@hong:~] ...

随机推荐

  1. 【安全开发】java安全编码规范

    申明:本文非笔者原创,原文转载自:https://github.com/SecurityPaper/SecurityPaper-web/blob/master/_posts/2.SDL%E8%A7%8 ...

  2. 【LeetCode OJ】Swap Nodes in Pairs

    题目:Given a linked list, swap every two adjacent nodes and return its head. For example,Given 1->2 ...

  3. Barcode.js功能强大的条码生成jQuery插件

    本文转载自http://www.uedsc.com/barcode-js.html Barcode.js是一个基于jQuery库的插件,用于绘制条形码或者二维码,能够生成基于DIV+CSS或者Canv ...

  4. SQL SERVER 2008 R2安全配置与防暴力破解

    https://blog.csdn.net/enweitech/article/details/49864215 0x00 sql server 2008 权限介绍 在访问sql server 200 ...

  5. Esper学习之十:EPL语法(六)

    在esper的文档中,epl访问数据库的配置放在了比较靠后的位置,不过为了方便各位学习,这里会先说明和数据库交互的相关配置,然后再说epl怎么访问数据库. 配置文件在官方esper包的etc文件夹下, ...

  6. 【基础】java类的各种成员初始化顺序

    父子类继承时的静态代码块,普通代码块,静态方法,构造方法,等先后顺序 前言: 普通代码块:在方法或语句中出现的{}就称为普通代码块.普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出 ...

  7. 原生js--cookie操作的封装

    封装cookie的操作:查询cookie个数.查询所有cookie的键.获取cookie.设置cookie.删除cookie.清除全部cookie /** * cookieStorage */func ...

  8. C陷阱与缺陷读书笔记

    2.1理解函数声明 这一章仔细分析了(*(void(*)())0)();这条语句的含义,并且提到了typedef的一种函数指针类型定义的用法. 我们经常用到的typedef用法是用于指定结构体的类型, ...

  9. Elasticsearch学习之深入搜索三 --- best fields策略

    1. 为帖子数据增加content字段 POST /forum/article/_bulk { "} } { "doc" : {"content" : ...

  10. mysql5.6.35的安装脚本

    #!/bin/bashfunction help() ( cat << EOF $ [-h] $ -c <CharaterSet> EOF exit ) ----------- ...