一 简介:
sed是一个精简的、非交互式的流式编辑器,它在命令行中输入编辑命令和指定文件名,然后在屏幕上查看输出。
逐行读取文件内容到临时缓冲区,称为模式空间。接着用sed命令处理缓冲区内容,处理完之后,把缓冲区内容送往屏幕。接着处理下一行
这样不断的重复,直到文件末尾。原文件内容并没有改变。

二 简单的例子:
sed  cmd   输入文件

sed '4,$d' test.in :逐行读取,删除4-最后一行
sed '3q' test.in:处理到第三行的时候退出,也就是前三行原样输出
sed 's/public/PUBLIC/' test.in:将public替换成PUBLIC  (/g替换每行所有的)
sed  -n 's/public/PUBLIC/g' test.in:没有输出 -n阻止输入行自动输出
sed -n 's/public/PUBLIC/p' test.in:输出只有public的行。p命令

三 指定多个命令的三种方法:
用分号隔开:sed 's/public/PUBLIC/;s/north/NPRTH/'  test.in
每个命令前放置-e选项: sed -e 's/public/PUBLIC/'  -e 's/north/NORTH/' test.in
使用分行命令功能,在输入单引号后按Enter回车 键就会多出提示符(>)
sed '
> s/public/PUBLIC/
> s/north/NORTH' test.in

-f:指定sed脚本文件.就是说 s/public/PUBLIC/ s/north/NORTH/等命令配置到test.sed脚本文件中。随便的本文件都可以
sed -f test.sed test.

四 sed命令cmd语法:
sed_cmd:使用格式
[address]sed_edit_cmd (通常用单引号括起来) 其中address为sed的行定位模式,用于指定将要被sed编辑的行。如果省略,sed将编辑所有的行。
sed_edit_cmd为sed对被编辑行将要进行的编辑操作。
address的定位方式:
n:表示第n行
$:表示最后一行
m,n:表示从第m到第n行
/pattern/:查询包含指定模式的行。
/pattern/,n:表示从指定模式到第n行
!:反向选择。如m,n!与m,n相反
例子:
sed -n '$p' test.in:打印最后一行  如果没有-n 原来的文本也会原样输出
sed -n  '/north/p' test.in:包含 /pattern/的行

五 常用的sed_edit_cmd:
p:打印匹配行。  记得-n阻止输出。否则会先按原样打印原来的行
=:显示匹配行的行号  sed -n '/north/=' test.in
d:删除匹配行
sed -n '/public/d' test.in

a\:在。。。行后加行...
i\:在...行之前插入
c\:替换成...
例如:sed '/public/a\AAA\
>BBB\
>CCC' test.in  在public行后加三行AAA BBB CCC

六 替换命令:
s:替换命令  格式
[address]s/old/new/[gpw]
address:如果省略表示编辑所有行
g:全局替换
p:打印被修改行
w filename:将被替换的行内容写到指定文件

sed -n 's/public/PUBLIC/w data' test.in
sed 's/[0-9][0-9]$/&.5/' datafiel:将两个数字结尾的行匹配成.5结尾 &表示被替换的字符串,就是说在原串结尾加.5

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

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

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

  2. 流编辑器sed

    sed与grep一样,都起源于老式的ed编辑器,因其是一个流编辑器(stream editor)而得名.与vi等编辑器不同,sed是一种非交互式编辑器(即用户不必参与编辑过程),它使用预先设定好的编辑 ...

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

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

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

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

  5. 流编辑器sed知识点总结

    sed(流文本编辑器)     每次读取一行到模式空间中,     修改的sed模式空间中的内容,并不会修改源文件,     继而输出模式空间的内容,     最后删除模式空间中的内容. sed [O ...

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

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

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

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

  8. Linux sed 流编辑器

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

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

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

  10. centos 正则,grep,egrep,流式编辑器 sed,awk -F 多个分隔符 通配符 特殊符号. * + ? 总结 问加星 cat -n nl 输出文件内容并加上行号 alias放~/.bash_profile 2015-4-10 第十三节课

    centos 正则,grep,egrep,流式编辑器 sed,awk -F 多个分隔符  通配符 特殊符号. * + ? 总结  问加星 cat -n  nl  输出文件内容并加上行号 alias放~ ...

随机推荐

  1. 多测师讲解自动化测试 _RF模拟鼠标悬停_高级讲师肖sir

    test19 Open Browser https://www.ctrip.com/?sid=155952&allianceid=4897&ouid=index gc Maximize ...

  2. go 正则 爬取邮箱代码

    package main import ( "net/http" "fmt" "io/ioutil" "regexp" ...

  3. php+nginx改为socket

    使用socket方式连接Nginx优化php-fpm性能 Nginx连接fastcgi的方式有2种:TCP和unix domain socket 什么是Unix domain socket?-- 维基 ...

  4. selenium--基础学习

    from selenium import webdriver from selenium.common.exceptions import TimeoutException, NoSuchElemen ...

  5. Sectigo邮件签名证书安装指南

    本篇将详细讲解如何在邮箱客户端安装Sectigo 邮件签名证书. 请先准备好您的邮件签名证书.如已签发未导出,请参照如何导出邮件签名证书的步骤完成准备工作. 本文将以Outlook 邮箱系统为例,在其 ...

  6. 优化Mysql数据库的8个方法

    通过8个方法优化Mysql数据库:创建索引.复核索引.索引不会包含含有NULL值的列.使用短索引.排序的索引问题.like语句操作.不要在列上进行运算.不使用NOT  IN 和<>操作 1 ...

  7. 多态(polymorphism)

    2020-10-17        longzqa@163.com        stronglzq [摘要]针对多态及相关知识进行阐述.继承关系中,多个子类都需要调用一个父类抽象方法,使用多态写法: ...

  8. 构造函数原理 - Js对象

    构造函数内部原理 有new之后,函数变成构造函数,产生三步隐式变化 1.函数执行,在函数体顶端隐式加上var this = {}; 2.执行赋值,AO{ this : {name:'zhangsan' ...

  9. 基于node.js的爬虫框架 node-crawler简单尝试

    百度爬虫这个词语,一般出现的都是python相关的资料. py也有很多爬虫框架,比如scrapy,Portia,Crawley等. 之前我个人更喜欢用C#做爬虫. 随着对nodejs的熟悉.发现做这种 ...

  10. Layui treeSelect 回写与对应选中

    今天遇到个问题就是Layui treeSelect 的回写与特定选中,网络上居然没啥资料,有的也是不全的,于是花了点时间处理好了,这里写一下,方便以后有遇到的朋友借鉴. 一.父页面 二.Form编辑框 ...