`
icepp
  • 浏览: 10382 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

sed基础一

阅读更多

Sed是一种面向字符流的编辑器。处理文件时,sed把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾,一次只处理文件中一行的拷贝。文件内容并没有改变,除非你使用重定向存储输出。

Sed同时维护着模式空间(pattern space)和保持空间(hold space),可以将模式空间的内容复制到保持空间并在以后检索它们。


调用sed命令有两种形式

sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)

 

 

 

常用的options

-e command, --expression=command   允许多点编辑。
-n, --quiet, --silent    取消默认输出。
-f, --filer=script-file   引导sed脚本文件名

 

 

使用的基础command及示例

1   [address]s/pattern/replacement/flags  ---substitution
用string替换正则表达式re。

 以下的是替换标记flags
g表示行内全面替换。
p表示打印行。
w表示把行写入一个文件。

示例:sed -i 's/old/new/g' file  GNU sed version 4.0.5以上带有-i选项

 

2  d  [ a d d r e s s [,a d d r e s s ] ] d---delete
从模式空间(Pattern space)位置删除匹配行。

示例:
$sed '1d' quote.txt
It was an evening of splendid music and company.
Too bad the disco floor fell through at 23:00.
The local nurse Miss P.Neave was in attendance
$ sed '1,3d' quote.txt
The local nurse Miss P.Neave was in attendance.
$sed /^$/d 删除空行

 

3 追加 插入 更改
a  ---append
在当前行后面加入一行文本。

i  ---insert
在当前行上面插入文本。

c  ---change
用新的文本改变本行的文本。它清除模式空间的内容,类似d命令的效果

append [line-address]a\
text
insert [line-address]i\
text
change [address]c\
text

 

4   l ---list
显示模式空间内容,将非打印的字符显示为两个数字的ascii码。

$ cat test/spchar
Here is a string of special characters: ^A  ^B
^M ^G
$ sed -n -e "l" test/spchar
Here is a string of special characters: \01 \02
\15 \07
$ # test with GNU sed too
$ gsed -n -e "l" test/spchar
Here is a string of special characters: \01  \02
\r \a


5    y  [address]y/abc/xyz/  ---Transform
按位置将abc中的每个字符转换成xyz中的

转换成大写
y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/


6    p   ---print
打印模式空间的行。
=
打印被匹配行的行号。
q  [line-address]q---quit
退出Sed。

 

7    n   [address]n  ---next
输出模式空间内容,然后读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。不返回脚本顶端。

 

 

附录:sed正则表达式元字符集


^
锚定行的开始 如:/^sed/匹配所有以sed开头的行。

$
锚定行的结束 如:/sed$/匹配所有以sed结尾的行。

.
匹配一个非换行符的字符 如:/s.d/匹配s后接一个任意字符,然后是d。

*
匹配零或多个字符 如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。

[]
匹配一个指定范围内的字符,如/[Ss]ed/匹配sed和Sed。

[^]
匹配一个不在指定范围内的字符,如:/[^A-RT-Z]ed/匹配不包含A-R和T-Z的一个字母开头,紧跟ed的行。

\(..\)
保存匹配的字符,如s/\(love\)able/\1rs,loveable被替换成lovers。

&
保存搜索字符用来替换其他字符,如s/love/**&**/,love这成**love**。

\<
锚定单词的开始,如:/\<love/匹配包含以love开头的单词的行。

\>
锚定单词的结束,如/love\>/匹配包含以love结尾的单词的行。

x\{m\}
重复字符x,m次,如:/0\{5\}/匹配包含5个o的行。

x\{m,\}
重复字符x,至少m次,如:/o\{5,\}/匹配至少有5个o的行。

x\{m,n\}
重复字符x,至少m次,不多于n次,如:/o\{5,10\}/匹配5--10个o的行。

分享到:
评论

相关推荐

    文本编辑sed基础教程

    文本编辑sed基础教程 适合于初学unix文本操作的学者 Linux 操作系统最大的一个好处是它带有各种各样的实用工具。存在如此之多不同的实用工具,几乎不可能知道并了解所有这些工具。可以简化关键情况下操作的一个实用...

    shell基础sed用法详解

    sed 用法介绍 s e d是一个非交互性文本流编辑器。它编辑文件或标准输入导出的文本拷贝。 引用: . 抽取域。 . 匹配正则表达式。 . 比较域。 . 增加、附加、替换。 . 基本的s e d命令和一行脚本。

    软件基础_2018_07第二章UNIX工具+sed1

    第二章UNIX的软件工具2.1 Unix软件开发工具简介sed(Streamer Editor)称为字符流编辑程序,是一个非交互式的文本编辑程序,作者为Lee

    linux之sed命令的用法

    -f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;-r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法)-i∶直接修改读取的档案内容,而不是由萤幕输出...

    shell最全基础2020年入门—从熟悉grep、sed、awk开始

    文章目录前言一、什么是shellshell脚本大白话二、shell常用操作三、文本处理三剑客 — 搜索工具grep1.什么是grep2.格式3.主要参数4.pattern正则表达式主要参数:5. grep使用实例四、文本处理三剑客 — 流编辑器sed1....

    shell编程指南,shell脚本,本书共分五部分全。grep家族,sed,AWK,正则表达式,tr用法

    第1章 文件安全与权限 1 第2章 使用find和xargs 14 第3章 后台执行命令 22 第4章 文件名置换 31 第5章 shell输入与输出 34 第6章 命令执行顺序 46 第二部分 文本过滤 第7章 正则表达式介绍 49 第8章 grep家族 56 第...

    shell基础十二篇

    shell基础1:文件安全与权限 2 shell基础2:查找技巧,find及xargs的使用 25 shell基础3和4:后台(crontab,at,&,nohup)及(*,?,[]等)shell基础5:输入/输出(echo,read,cat,管道,tee,重定向等)shell基础8:文本...

    基于MFCC+GMM的声学事件检测(SED), MATLAB实现, 源码+详细文档+全部数据(高分课程设计)

    基于MFCC+GMM的声学事件检测(SED), MATLAB实现, 源码+详细文档+全部数据(高分课程设计)基于MFCC+GMM的声学事件检测(SED), MATLAB实现, 源码+详细文档+全部数据(高分课程设计) 【备注】 1、该资源内项目代码都...

    基于MFCC+GMM的声学事件检测(SED)系统matlab实现源码+报告(课程设计).zip

    基于MFCC+GMM的声学事件检测(SED)系统matlab实现源码+报告(课程设计).zip 该资源内项目源码是个人的课设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到94.5分,放心下载使用! 该资源适合计算机相关...

    Linux的常用命令cat、sed、zip等用法,以及shell编程的基本语法,以及makefile编写方式等等

    这个是我在学习Linux的时候做的思维导图笔记,主要是Linux的一些基础知识。免费提供下载,学习分享。 该文档分为以下几个部分: 1.shell语法:包含格式化输入输出、数组定义、变量定义方法、运算方法、流程控制、...

    第二十四章:shell脚本-正则、grep、sed、awk三剑客1

    3.基础正则表达式: ^word 搜索以word开头的 4.扩展的正则表达式:ERE(egrep或grep -E) + 重复一次或一次以上前面的一个字符 5.理

    sed-awk-hands-on-ja

    ed是一个著名的行编辑器,在此基础上开发了sed和ex&vim。 ed的基本用法 打开文件将打开一个交互式编辑器。 ed ファイル名 尝试输入ed romeo_and_juliet.txt ,您将首先看到文件中的字符数。仅此一项并不能告诉您...

    shell脚本之正则表达式、grep、sed、awk

    基础正则 ^word ##搜索以word开头的 vi/vim中 ^ 一行的开头 word$ ##搜索以word结尾的 vi/vim中 $ 一行的结尾 ^$ ##表示空行 . ##代表且只能代表任意一个字符 \ ##例:\. 只代表点本身,转义符号,让有特殊身份...

    Symantec Encryption Desktop Professional MP3 10.rar

    此外,SED还提供了与公共密钥基础设施(PKI)和数字证书相关的加密功能,以实现更高级的安全性。 SED的一个重要功能是访问控制,该功能可确保只有经过授权的用户才能访问加密的数据。此外,SED还提供了日志记录和...

    基于MFCC+GMM的声学事件检测(SED), MATLAB实现, 课程设计,.zip

    1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合...

    基于MFCC+GMM的声学事件检测(SED) MATLAB实现+课题报告

    本项目针对街道与交通道路场景,设计了一套用于突发...SegmentExtraction.m:在能量分析基础上做端点检测,实现大功率前景声(枪声/爆炸声/车鸣声)和环境背景声(干扰)的分离 TrainingGMM:计算MFCC特征,并训练3个GMM分

    Unix教程基础篇

    操作UNIX的确不如Windows方便随意,不过对于那些没有用过UNIX但又希望和计算机更亲密接触的人士,我禁不住要向你们推荐UNIX和这本书,因为UNIX让你了解计算机,而本书将让你了解UNIX,而这些的基础当然是阅读本书。...

    基于MFCC+GMM的声学事件检测(SED), MATLAB实现, 课程设计, 2020夏+源代码+文档说明

    - 不懂运行,下载完可以私聊问...3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------

    UNIX 实用参考大全(1)

    该压缩包中包含以下文件(shell函数 awk sed unix 进程基础知识 unix测试题等.......)

Global site tag (gtag.js) - Google Analytics