官方定义:

  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. 【Python】paddlepaddle docker python2.7 centos运行

    PS E:\AI\BlockMining> docker cp .\LearnPaddle-master\ 30acd98dbc60:\rootPS E:\AI\BlockMining> ...

  2. ajax和promise的结合使用

    在需要依赖完成的ajax请求可使用promise保证执行顺序 在第一个请求正确返回后再发送第二个请求 /* 定义一个使用promise的ajax请求,这里依赖jquery 参数中请求url为必填参数 ...

  3. linux下使用ftp传递文件的shell脚本

    使用ftp传递文件,传递过程中防止对方取文件,后缀名为writing,传完后再改回来. #!/bin/bash dstpath=cnet ftpip="127.0.0.1" log ...

  4. cygwin设置NDK环境变量ANDROID_NDK_ROOT

    cygwin安装目录下的“home/当前用户名”的.bash_profile下以UltraEdit(Unix方式)或者eclipse打开,最后添加一句: ANDROID_NDK_ROOT=/cygdr ...

  5. Windows驱动开发之线程与同步事件

    转载请注明来源: enjoy5512的博客 : http://blog.csdn.net/enjoy5512 GitHub : https://github.com/whu-enjoy .1. 使用系 ...

  6. EGit系列第一篇——创建本地仓库

    首先,用Eclipse创建一个项目,然后右键项目Team\Share Preject... 然后出来Share Preject对话框,选择git 点击下一步配置Git仓库,通常在项目本地目录创建仓库, ...

  7. c++ 类内部函数调用虚函数

    做项目的过程中,碰到一个问题. 问题可以抽象为下面的问题: 普通人吃饭拿筷子,小孩吃饭拿勺子. class People { public: void eat() { get_util_to_eat( ...

  8. String 类实现 以及>> <<流插入/流提取运算符重载

    简单版的String类,旨在说明>> <<重载 #include <iostream> //#include <cstring>//包含char*的字符 ...

  9. 题目1076:N的阶乘(大数乘法)

    题目链接:http://ac.jobdu.com/problem.php?pid=1076 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: ...

  10. Sencha Touch 实战开发培训 视频教程 第二期 第八节 (完结)

    2014.4.23 晚上8:00左右开课. 本节课耗时超长,因为演示过程中出现了一些小错误,所以耗时接近2小时. 本期培训一共八节,前两节免费,后面的课程需要付费才可以观看. 本节内容: 开发cord ...