sed - stream editor for filtering and transforming text(用于过滤和转换文本的SED流编辑器),主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作.

语法

sed [-hnV][-e<script>][-f<script文件>][文本文件]

选项:

-n, --quiet, --silent
suppress automatic printing of pattern space
-e script, --expression=script
add the script to the commands to be executed
-f script-file, --file=script-file
add the contents of script-file to the commands to be executed

命令:

c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~

实例

①以行为单位的替换(注意:sed 后面接的动作,请务必以 '' 两个单引号括住喔!

yunduo@yunduo-ThinkCentre-XXXX:~/test$ nl abc
1 a
2 b
3 c
4 d
5 e
yunduo@yunduo-ThinkCentre-XXXX:~/test$ nl abc | sed '2,5c replace No 2-5 line'
1 a
replace No 2-5 line

②数据的搜寻并替换

sed 's/要被取代的字串/新的字串/g'

yunduo@yunduo-ThinkCentre-XXXX:~/test$ sed 's/a/1/g' ./abc
1
b
c
d
e

③在第三行后添加一行数据"newline"

yunduo@yunduo-ThinkCentre-XXXX:~/test$ cat testfile
sudo find ./ -perm 755 | xargs -i cp {} /usr/bin/ sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'`
yunduo@yunduo-ThinkCentre-XXXX:~/test$ sed -e 3a\newline testfile
sudo find ./ -perm 755 | xargs -i cp {} /usr/bin/ sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'`
newline

④在第二行前插入数据"drink tea"

yunduo@yunduo-ThinkCentre-XXXX:~/test$ sed '2i drink tea' testfile
sudo find ./ -perm 755 | xargs -i cp {} /usr/bin/
drink tea sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'`

⑤以行为单位的显示

yunduo@yunduo-ThinkCentre-XXXX:~/test$ nl abc | sed -n '3,5p'
3 c
4 d
5 e

⑥数据的搜寻与显示

yunduo@yunduo-ThinkCentre-XXXX:~/test$ nl abc | sed '/b/p'
1 a
2 b
2 b
3 c
4 d
5 e

⑦以行为单位的删除

yunduo@yunduo-ThinkCentre-XXXX:~/test$ cat abc
a
b
c
d
e
yunduo@yunduo-ThinkCentre-XXXX:~/test$ sed '2,4d' abc
a
e

⑧仅显示处理结果

yunduo@yunduo-ThinkCentre-XXXX:~/test$ sed '/b/p' abc
a
b
b
c
d
e
yunduo@yunduo-ThinkCentre-XXXX:~/test$ sed -n '/b/p' abc
b

⑨多点编辑

yunduo@yunduo-ThinkCentre-XXXX:~/test$ sed -e '3,$d' -e 's/sudo//' testfile
find ./ -perm 755 | xargs -i cp {} /usr/bin/

【Linux】sed笔记的更多相关文章

  1. Linux内核笔记--内存管理之用户态进程内存分配

    内核版本:linux-2.6.11 Linux在加载一个可执行程序的时候做了种种复杂的工作,内存分配是其中非常重要的一环,作为一个linux程序员必然会想要知道这个过程到底是怎么样的,内核源码会告诉你 ...

  2. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

  3. linux学习笔记2-linux的常用命令

    第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ======== ...

  4. Linux学习笔记(一)2015.4.13

    研究生由单片机转Linux学习 首先安装VMware虚拟机,用的是VMware 10.0 在VMware 10.0上安装视频上推荐的Red Hat Linux 5 安装后正式进入Linux学习 笔记1 ...

  5. 跟着鸟哥学Linux系列笔记3-第11章BASH学习

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. ...

  6. 跟着鸟哥学Linux系列笔记2-第10章VIM学习

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 常用的文本编辑器:Emacs, pico, nano, joe, vim VI ...

  7. 跟着鸟哥学Linux系列笔记0-如何解决问题

    跟着鸟哥学Linux系列笔记0-扫盲之概念 在发生问题怎么处理: 1.  在自己的主机.网络数据库上查询How-To或FAQ -Linux 自身的文件数据: /usr/share/doc -CLDP中 ...

  8. 跟着鸟哥学Linux系列笔记1

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 装完linux之后,接下来一步就是进行相关命令的学习了 第五章:首次登录与在线求助man page 1. X ...

  9. Linux sed 替换第一次出现的字符串

    /********************************************************************************* * Linux sed 替换第一次 ...

  10. linux sed命令参数及用法详解

    linux sed命令参数及用法详解 http://blog.csdn.net/namecyf/article/details/7336308 1. Sed简介 sed 是一种在线编辑器,它一次处理一 ...

随机推荐

  1. 【JZOJ4883】【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰

    题目描述 在炽热的核熔炉中,居住着一位少女,名为灵乌路空. 据说,从来没有人敢踏入过那个熔炉,因为人们畏缩于空所持有的力量--核能. 核焰,可融真金. 咳咳. 每次核融的时候,空都会选取一些原子,排成 ...

  2. poj 3280【区间dp】

    poj 3280 题意:给定一个字符串和每个字符删去和增加的代价,求使字符串变成回文串操作所需的最小代价. 题解:哇!开心!终于亲自做对了!做完这两题这个就回了.uva10739  uva 10453 ...

  3. char和achar互转

    #pragma once#include "stdafx.h" #ifndef _Convert_H_#define _Convert_H_ //定义转换类class Conver ...

  4. UVa 10285【搜索】

    UVa 10285 哇,竟然没超时!看网上有人说是记忆化搜索,其实不太懂是啥...感觉我写的就是毫无优化的dfs暴力....... 建立一个坐标方向结构体数组,每个节点dfs()往下搜就好了. #in ...

  5. Linux 网络原理及基础设置

    临时配置网络(ip,网关,dns)+永久配置 设置IP和掩码 ifconfig eth0 192.168.2.2 netmask 255.255.255.0 设置网关route add default ...

  6. selenium webdriver学习(十)------------如何把一个元素拖放到另一个元素里面(转)

    selenium webdriver学习(十)------------如何把一个元素拖放到另一个元素里面 博客分类: Selenium-webdriver 元素拖放drag and drop  Q群里 ...

  7. PHPstorm相关设置以及快捷键

    转自:http://blog.csdn.net/fenglailea/article/details/12166617 1.界面中文方框问题 Settings->Appearance中Theme ...

  8. Angular项目目录结构

    前言:不支持MakeDown的博客园调格式的话,真的写到快o(╥﹏╥)o了,所以老夫还是转战到CSDN吧,这边就不更新啦啦啦~ CSDN地址:https://blog.csdn.net/Night20 ...

  9. oracle中=>是什么意思呢?

    => 是 Oracle 中调用 存储过程的时候, 指定 参数名进行调用.一般是, 某些参数有默认值的时候,你需要跳过某些参数来进行调用.下面是具体的例子. 参数的默认值SQL> CREAT ...

  10. H3C UDP封装