转载:http://blog.sina.com.cn/s/blog_ac9fdc0b0101lvdv.html

sed和awk是永远地痛,学了又忘,主要是木有横向对比过,所以总把握不到精髓。它可以完美的配合正则表达式(注意是正则表达式哈,不是通配符和字符串模板)
*********************************************************************************************
命令格式
sed命令的格式如下:sed option script file,option如下:
(1)-e script:在处理输入时,将script中指定的命令添加到运行的命令中,实际上就是使用多个选项;

(2)-f file:在处理输入时,将file中指定的命令添加到运行的命令中;

(3)-n:不为每个命令生成输出,等待print来输出;
(4)-i: 将替换结果用于原文件

*********************************************************************************************
替换字符s/pattern/replace/flags
替换文本内容,有4种可用的flags:
(1)默认是替换第一个匹配的字符;
(2)数字,表明新文本将替换第几处模式匹配的地方;
(3)g,表明替换所有的地方;
(4)p,表明原来的行内容要打印出来;
(5)w file,将替换结果写入原文件。

***************************************************************************************
移除字符/pattern/d 移除pattern
很简单的移除空白行:

***************************************************************************************
使用地址
默认情况下,sed编辑器中使用的命令会作用与文本的所有行,如果只想将命令作用域特定某行,必须使用行寻址。在sed编辑器中有两种形式的行寻址:
(1)行的数字范围
(2)用文本模式来过滤出某些行
两种方法都使用相同的格式来指定地址:[address]command
===================================================================
数字方式的行寻址
当使用数字方式的行寻址时,可以用它们在文本流中的行位置来引用行。sed会将第一行分配为1,后面按顺序为新行分配行号。
-------------------------------
测试文件内容:

测试的命令如下:

注意两点:
1n,m表示的是nm
2$表示的是结尾的行,2$表示从第二行到结尾
===============================================================================
文本模式过滤器
sed编辑器允许指定文本模式来过滤出命令要作用的行,格式如下:/pattern/command

很容易看懂,/2/用来匹配出现2的行,然后对该行作用命令s/chen/jiang/
================================================================================
组合命令
使用{}将多条命令组合在一起,可以在单行上执行多条命令。

****************************************************************************************
删除行
删除命令d名副其实,它会删除匹配指定寻址模式的所有行。
===============================================================================
(1)删除指定范围行

(2)删除匹配行

********************************************************************************************
插入和附加文本
(1)插入(insert命令i会在指定行的前面增加一个新行;
(2)追加(append命令a会在指定行的后面增加一个新行;
不能在单个命令上使用这两条命令,必须指定是要将行插入还是附加到另一行,格式如下:
sed '[address]command\ new line'
=========================================================

如果更加复杂的匹配如下:

***********************************************************************************************
修改行
修改允许修改数据中整行文本的内容,和插入附加的机制一样,如下:

***********************************************************************************************
字符映射
转换(y)命令是唯一可以处理单个字符的sed编辑命令。转换命令的格式如下:
[address]y/inchars/outchars/
转换命令会对inchars和outchars值进行一对一的映射。

**********************************************************************************************
回顾打印
有三种方式来打印数据流中的信息:
(1)p:打印文本行

===============================================================================
(2)=:打印行号

===============================================================================
(3)l:列出行
列出命令l允许打印数据流中的文本和不可打印的ASCII字符。
*******************************************************************************************
多行命令
多行命令允许你跨越多行来执行特定的操作。sed编辑器包含了3个可用来处理多行文本的特殊命令。
(1)N:将数据流中的下一行加进来创建一个多行组的处理;
(2)D:删除多行组中的一行;
(3)P:打印多行组中的一行。
==============================================================================
next命令
------------------------------
单行next
小写n会告诉sed移动到数据流的下一行文本,而不用回到命令最开始再执行一遍。可以来感受下下面的区别。

================================================================================
合并文本行
===============================================================================
(6)& 代表已匹配的字符串

================================================================================
(7)子串匹配标记 \(pattern\) \n,非常的重要

两个\(pattern\)之间需要空格 这个非常的重要,可以直接忽略一部分而只选择其中某一部分
===============================================================================
================================================================================
(9)引用 当使用变量是用双引号

Shell:sed流编辑器的更多相关文章

  1. Linux三剑客之sed流编辑器

    一.功能说明 Sed是Stream Editor(流编辑器)缩写,是操作.过滤和转换文本内容的强大工具.常用功能有增删改查,过滤,取行. 二.语法格式 Usage: sed [options] [se ...

  2. Shell 基础 -- 流编辑器 sed 详解

    一.流编辑器 sed 与命令 sed Linux 中,常使用流编辑器 sed 进行文本替换工作.与常使用的交互式编辑器(如vim)不同,sed 编辑器以批处理的方式来编辑文件,这比交互式编辑器快得多, ...

  3. Linux下的sed流编辑器命令详解

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

  4. Linux sed 流编辑器

    sed是stream editor的简称,也就是流编辑器.盗用一张图片解释原理 命令格式: SYNPPSIS: sed [OPTION]… {script-only-if-no-other-scrip ...

  5. sed流编辑器

    一.前言 (一).sed 工作流程 sed 是一种在线的.非交互式的流编辑器,它一次处理一行内容.处理时,把当做前处理的行存储在临时缓存区中,成为“模式空间”(pattern space),接着用se ...

  6. shell脚本学习笔记 (流编辑器sed)

    sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用很普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑命令转换为另一种格式输出. sed不 ...

  7. SED单行脚本快速参考(Unix 流编辑器)(转)

    sed.sourceforge.net被封杀,特在此处贴上官方的sed 使用说明文档 SED单行脚本快速参考(Unix 流编辑器) 2005年12月29日 英文标题:USEFUL ONE-LINE S ...

  8. SED单行脚本快速参考(Unix 流编辑器)

    ------------------------------------------------------------------------- SED单行脚本快速参考(Unix 流编辑器) 200 ...

  9. 快速理解linux流编辑器sed命令

    原创 杜亦舒性能与架构 之前介绍过 awk 命令,sed 命令同样是非常重要的文本处理工具,涉及到linux shell开发时,几乎是避不开这两大利器的 sed 是 stream editor 的简写 ...

随机推荐

  1. Leetcode Largest Number c++ solution

    Total Accepted: 16020 Total Submissions: 103330     Given a list of non negative integers, arrange t ...

  2. “大数据讲师”、“Hadoop讲师”、“Spark讲师”、“云计算讲师”、“Android讲师”

    王家林简介 Spark亚太研究院院长和首席专家,中国目前唯一的移动互联网和云计算大数据集大成者. 在Spark.Hadoop.Android等方面有丰富的源码.实务和性能优化经验.彻底研究了Spark ...

  3. FLEX实现两侧边栏固定中间自适应布局

    <style type="text/css"> #outer{ display: flex; width: 100%; flex-flow: row nowrap; } ...

  4. sonar 代码质量管理平台

    1) 下载    从sonar官网http://www.sonarsource.org/下载 (版本当然是最新的了)   在官网上是不分系统的,一个zip包,下下来之后,包里包含 windows .l ...

  5. Juicer javascript 模板引擎

    模板引擎是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档. js模板引擎包括如下:template官方参考:http://au ...

  6. java 最佳且开源的反编译工具

    1.jad:2.jode 很多gui的反编译工具(decafe,DJ,cavaJ)差不多都是基于jad和jode的.

  7. android中向bitmap里写入文字

    public static Bitmap drawText2Bitmap(String text, int imgResourceId, Context mContext) { try { Resou ...

  8. Codeforces Round #372 (Div. 1) B. Complete The Graph (枚举+最短路)

    题目就是给你一个图,图中部分边没有赋权值,要求你把无权的边赋值,使得s->t的最短路为l. 卡了几周的题了,最后还是经群主大大指点……做出来的…… 思路就是跑最短路,然后改权值为最短路和L的差值 ...

  9. JSF 2 multiple select dropdown box example

    In JSF, <h:selectManyMenu /> tag is used to render a multiple select dropdown box – HTML selec ...

  10. Web安全--使用Salt + Hash将密码加密后再存储进数据库

    转载原地址 http://www.bozhiyue.com/mianshiti/_net/2016/0728/314239.html (一) 为什么要用哈希函数来加密密码 如果你需要保存密码(比如网站 ...