官方定义:

  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. 【权限维持】window几种隐藏技术

    “真正”隐藏文件 使用Attrib +s +a +h +r命令就是把原本的文件夹增加了系统文件属性.存档文件属性.只读文件属性和隐藏文件属性. attrib +s +a +h +r c:\test 这 ...

  2. SpringBoot(六)-- 静态资源处理

    1.Spring Boot 的默认资源映射 其中默认配置的 /** 映射到 /static (或/public./resources./META-INF/resources), 其中默认配置的 /we ...

  3. php-fpm 配置进程池

    什么是 php-fpm :php 是作为一个独立服务存在的,这个服务叫做 php-fpm什么是 php-fpm pool :也就是 php-fpm 的进程池,这个进程池中运行了多个子进程,用来并发处理 ...

  4. Pycharm按装

    1.python 官方 2.下载完成后点击exe 安装 3.按装完成后在cmd中输入 python 1.如果显示python版本 那么就安装成功 2.如果出现"python"不是外 ...

  5. Studio更新

    其实最主要的是下面三个步骤: 1.更新As工程为3.0 2.必须升级gradle到4.0以上 3.buildToolsVersion升级到26.0.0 4.在gradle.properties中配置版 ...

  6. MySql数据库设计表添加字段

    当要添加的字段属于整型,需要设置默认值 或者: alter table fp_user_base add hasPwd tinyint(4) not null default 0;

  7. React Native 开发工具篇

    正文 概述:开发RN的工具有很多,选择性也比较多,比如Facebook专门为React开发的IDE:Nuclide,还有做前端比较熟悉的WebStorm.Sublime Text 3.VS Code等 ...

  8. Mac下安装和卸载MySQL(含配置)

     安装 首先需要下载 MySQL Community Server 下载地址:https://dev.mysql.com/downloads/mysql/ 进入MySQL的下载界面(https://d ...

  9. php获取ios或android通过文件头(header)传过来的坐标,通过百度接口获取具体城市和地址,并存入到session中。

    首先,在function.php方法文件中封装一个获取header头文件的方法. if (!function_exists('getallheaders')) { function getallhea ...

  10. 【大数据系列】MapReduce详解

    MapReduce是hadoop中的一个计算框架,用来处理大数据.所谓大数据处理,即以价值为导向,对大数据加工,挖掘和优化等各种处理. MapReduce擅长处理大数据,这是由MapReduce的设计 ...