书签 分享 收藏 举报 版权申诉 / 30
上传文档赚钱

类型Sed教程-培训课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4019748
  • 上传时间:2022-11-04
  • 格式:PPT
  • 页数:30
  • 大小:672.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Sed教程-培训课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Sed 教程 培训 课件
    资源描述:

    1、Sed主要内容主要内容Sed简介简介元字符集元字符集Sed命令命令Sed高级用法高级用法SedSed简介简介sed是一种在线编辑器,它一次处理一行内容。是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间模式空间”(pattern space),接着用),接着用sed命令处理命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向

    2、存储输出。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。反复操作;编写转换程序等。Sed一次一行的一个设计优点,读非常大的文件不一次一行的一个设计优点,读非常大的文件不会出问题,如果全部读取可能会内存溢出或处理速会出问题,如果全部读取可能会内存溢出或处理速度非常慢。度非常慢。元字符集元字符集 锚定行的开始锚定行的开始 如:如:/sed/sed/匹配所有以匹配所有以sedsed开头的行开头的行$锚定行的结束锚定行的结束 如:如:/sed$/sed$/匹配所有以匹配所有以seds

    3、ed结尾的行结尾的行.匹配一个非换行符的字符匹配一个非换行符的字符 如:如:/s.ds.d/匹配匹配s s后接一个任意字符,然后是后接一个任意字符,然后是d d*匹配零或多个字符匹配零或多个字符 如如:/:/*sed/sed/匹配所有模板是一个或多个空格后紧跟匹配所有模板是一个或多个空格后紧跟sedsed的行的行 匹配一个指定范围内的字符,如匹配一个指定范围内的字符,如/SsedSsed/匹配匹配sedsed和和SedSed匹配一个不在指定范围内的字符匹配一个不在指定范围内的字符如:如:/A-RT-/A-RT-ZedZed/匹配不包含匹配不包含A-RA-R和和T-ZT-Z的一的一 个字母开头,

    4、紧跟个字母开头,紧跟eded的行的行(.)(.)保存匹配的字符,如保存匹配的字符,如s/(love)able/1rss/(love)able/1rs,loveableloveable被替换成被替换成loverslovers&保存搜索字符用来替换其他字符,如保存搜索字符用来替换其他字符,如s/love/s/love/*&*/,lovelove这成这成*lovelove*锚定单词的开始,如锚定单词的开始,如:/love/:/锚定单词的结束,如锚定单词的结束,如/love/love/匹配包含以匹配包含以lovelove结尾的单词的行结尾的单词的行xmxm重复字符重复字符x x,m m次,如:次,如:

    5、/05/05/匹配包含匹配包含5 5个个o o的行的行xmxm,重复字符重复字符x,x,至少至少m m次,如:次,如:/o5,/o5,/匹配至少有匹配至少有5 5个个o o的行的行xm,nxm,n重复字符重复字符x x,至少,至少m m次,不多于次,不多于n n次,如:次,如:/o5,10/o5,10/匹配匹配5-105-10个个o o的行的行Sed命令命令sed读取数据读取数据s e d从文件的一个文本行或从标准输入从文件的一个文本行或从标准输入调用调用sed命令有两种形式:命令有两种形式:sed options command file(s)/sed s/test/mytest/sed.t

    6、xtsed options-f scriptfile file(s)/sed-f cmd.sed test.txtsed保存输出保存输出重定向w 写文本到一个文件 两种方法是有区别的两种方法是有区别的Sed的常用选项的常用选项-e command,-expression=command 允许多条命令编辑。允许多条命令编辑。-n,-quiet,-silent 取消默认输出。取消默认输出。-f,-filer=script-file 引导引导sed脚本文件名脚本文件名-i 直接修改读取的档案内容,而不是由屏幕输出直接修改读取的档案内容,而不是由屏幕输出 -help display this help

    7、 and exit 显示帮助信息并退出显示帮助信息并退出-version output version information and exit 显示显示sed版本信息并退出版本信息并退出Sed基本命令基本命令a在当前行后面加入一行文本。在当前行后面加入一行文本。c用新的文本改变本行的文本。用新的文本改变本行的文本。d从模板块(从模板块(Pattern space)位置删除行。)位置删除行。i在当前行上面插入文本。在当前行上面插入文本。l列表不能打印字符的清单。列表不能打印字符的清单。p打印模板块的行。打印模板块的行。q退出退出Sed。r file从从file中读行。中读行。w file写并追

    8、加模板块到写并追加模板块到file末尾。末尾。!表示后面的命令对所有没有被选定的行发生作用。表示后面的命令对所有没有被选定的行发生作用。y表示把一个字符转换为另外的字符表示把一个字符转换为另外的字符正则表达式正则表达式=打印当前行号码。打印当前行号码。#把注释扩展到下一个换行符以前。把注释扩展到下一个换行符以前。s/re/string用用string替换正则表达式替换正则表达式re。Sed高级命令高级命令b lable 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。t label if分支,从最后一行开始,条件一旦满

    9、足或者分支,从最后一行开始,条件一旦满足或者T,t命令,命令,将导致分支到带有标号的命令处,或者到脚本的末尾。将导致分支到带有标号的命令处,或者到脚本的末尾。T label 错误分支,从最后一行开始,一旦发生错误或者错误分支,从最后一行开始,一旦发生错误或者T,t命令,命令,将导致分支到带有标号的命令处,或者到脚本的末尾。将导致分支到带有标号的命令处,或者到脚本的末尾。n读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。N追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行追加下一个输入行到模板块后面并在二者间嵌入

    10、一个新行,改变当前行号码。号码。P打印模板块的第一行。打印模板块的第一行。D删除模板块的第一行。删除模板块的第一行。h拷贝模板块的内容到内存中的缓冲区。拷贝模板块的内容到内存中的缓冲区。H追加模板块的内容到内存中的缓冲区追加模板块的内容到内存中的缓冲区g获得内存缓冲区的内容,并替代当前模板块中的文本。获得内存缓冲区的内容,并替代当前模板块中的文本。G获得内存缓冲区的内容,并追加到当前模板块文本的后面。获得内存缓冲区的内容,并追加到当前模板块文本的后面。X表示互换模板块中的文本和缓冲区中的文本。表示互换模板块中的文本和缓冲区中的文本。W file写并追加模板块的第一行到写并追加模板块的第一行到f

    11、ile末尾。末尾。Sed命令命令定位定位sed浏览输入文件时,缺省从第一行开始,两种方式定位浏览输入文件时,缺省从第一行开始,两种方式定位:a.使用行号,可以是一个简单数字,或是一个行号范围。使用行号,可以是一个简单数字,或是一个行号范围。b.使用正则表达式。使用正则表达式。例:例:x#为一行号,如1x,y#表示行号范围从x到y,如2,5表示从第2行到第5行/pattern/#查询包含模式的行。例如/disk/或/a-z/pattern/pattern/#查询包含两个模式的行。例如/disk/disks/pattern/,x#在给定行号上查询包含模式的行。如/ribbon/,3x,/patte

    12、rn/#通过行号和模式查询匹配行。3,/vdu/x,y!#查询不包含指定行号x和y的行。1,2!元字符集元字符集锚定行的开始 如:/sed/匹配所有以sed开头的行$锚定行的结束 如:/sed$/匹配所有以sed结尾的行.匹配一个非换行符的字符 如:/s.d/匹配s后接一个任意字符,然后是d*匹配零或多个字符 如:/*sed/匹配所有模板一个或多个空格后紧跟sed的行 匹配一个指定范围内的字符,如/Ssed/匹配sed和Sed匹配一个不在指定范围内的字符如:/A-RT-Zed/匹配不包含A-R和T-Z的一个字母开头,紧跟ed的行(.)保存匹配的字符,如s/(love)able/1rs,love

    13、able被替换成lovers&保存搜索字符用来替换其他字符,如s/love/*&*/,love这成*love*锚定单词的开始,如:/锚定单词的结束,如/love/匹配包含以love结尾的单词的行xm重复字符x,m次,如:/05/匹配包含5个o的行xm,重复字符x,至少m次,如:/o5,/匹配至少有5个o的行xm,n 重复字符x,至少m次,不多于n次,如:/o5,10/匹配5-10个o的行Sed命令命令显示显示-psed -n 2p sed.txtsed n 1,3p sed.txtsed n/hello/p sed.txtsed n/1,$/p sed.txthello sed123abcte

    14、st11test456xxxxDDDvvvvtest xxxxloveable10AAAAAAAAAAAA123hello sed123abchello sedhello sed123abctest11test456xxxxDDDvvvvtest xxxxloveable10AAAAAAAAAAAASed命令命令打印行号打印行号-=sed n/hello/=sed.txtsed n 1,$=sed.txthello sed123abctest11test456xxxxDDDvvvvtest xxxxloveable10AAAAAAAAAAAA1123456789101112Sed命令命令匹配元

    15、字符匹配元字符sed n/$/=sed.txtsed-n/A4,/p sed.txtsed n/.test/p sed.txtsed n/1*test/p sed.txthello sed123abctest11test456xxxxDDDvvvvtest xxxxloveable10AAAAAAAAAAAA6AAAAAAAAAtest11testtest11testtest xxxxSed命令命令附加文本附加文本-ased 3atest sed.txthello sed123abctest11test456xxxxDDDvvvvtest xxxxloveable10AAAAAAAAAAAAh

    16、ello sed123abctesttest11test456xxxxDDDvvvvtest xxxxloveable10AAAAAAAAAAAASed命令命令插入文本插入文本-i sed/test/iinsert sed.txthello sed123abctest11test456xxxxDDDvvvvtest xxxxloveable10AAAAAAAAAAAAhello sed123abcinserttest11test456xxxxDDDvvvvinserttest xxxxloveable10AAAAAAAAAAAASed命令命令修改文本修改文本-csed/test/cmodify

    17、 sed.txthello sed123abctest11test456xxxxDDDvvvvtest xxxxloveable10AAAAAAAAAAAAhello sed123abcmodify456xxxxDDDvvvvmodifyloveable10AAAAAAAAAAAASed命令命令删除文本删除文本-dsed/test/d sed.txtsed 2,$d sed.txthello sed123abctest11test456xxxxDDDvvvvtest xxxxloveable10AAAAAAAAAAAAhello sed123abc456xxxxDDDvvvvloveable1

    18、0AAAAAAAAAAAAhello sedSed命令命令退出退出-qsed 3q sed.txthello sed123abctest11test456xxxxDDDvvvvtest xxxxloveable10AAAAAAAAAAAAhello sed123abcSed命令命令列表不能打印字符列表不能打印字符-l sed-n l sed.txthello sed123abctest11test456xxxxDDDvvvvtest xxxxloveable10AAAAAAAAAAAAhello sed$123$abc$test11test$456txxxx$DDDvvvv$test xxxx

    19、$loveable$10$AAA$AAAAAAAAA$Sed命令命令替换对应的字符替换对应的字符-y sed y/abcd/ABCD/sed.txthello sed123abctest11test456xxxxDDDvvvvtest xxxxloveable10AAAAAAAAAAAAhello seD123ABCtest11test456xxxxDDDvvvvtest xxxxloveABle10AAAAAAAAAAAASed命令命令取反命令取反命令-!sed-n/test/!p sed.txthello sed123abctest11test456xxxxDDDvvvvtest xxxx

    20、loveable10AAAAAAAAAAAAhello sed123abc456xxxxDDDvvvvloveable10AAAAAAAAAAAASed命令命令写入文件:写入文件:w命令命令sed-n/test/w write.txt test.txt在在test.txt中所有包含中所有包含test的行都被写入的行都被写入file里。里。w命令和重定向命令和重定向的作用是不同的。的作用是不同的。w是讲匹配的行写入文件中是讲匹配的行写入文件中是讲打印到屏幕上的内容写到文件中是讲打印到屏幕上的内容写到文件中-I 选项直接修改读取的档案内容选项直接修改读取的档案内容sed i/test/d sed.

    21、txtsed n i/test/d sed.txt-l 等价于等价于hello sed123abctest11test456xxxxDDDvvvvtest xxxxloveable10AAAAAAAAAAAAtest11testtest xxxxhello sed123abc456xxxxDDDvvvvloveable10AAAAAAAAAAAASed命令命令从文件读入:从文件读入:r命令命令sed/test/r read.txt test.txt讲讲read.txt里的内容被读进来,显示在与里的内容被读进来,显示在与test匹配的行后面,匹配的行后面,如果匹配多行,则如果匹配多行,则file

    22、的内容将显示在所有匹的内容将显示在所有匹配行的下面。配行的下面。hello sed123abctest11test456xxxxDDDvvvvtest xxxxloveable10AAAAAAAAAAAAreadfile1readfile2hello sed123abctest11testreadfile1readfile2456xxxxDDDvvvvtest xxxxreadfile1readfile2loveable10AAAAAAAAAAAASed命令命令Sed的替换命令的替换命令ssed s#10#100#g sed.txt不论什么字符,紧跟着不论什么字符,紧跟着s命令的都被认为是新的

    23、分隔符,所以,命令的都被认为是新的分隔符,所以,“#”在这里是分隔符,代替了默认的在这里是分隔符,代替了默认的“/”分隔符。表示把所有分隔符。表示把所有10替换成替换成100。hello sed123abctest11test456xxxxDDDvvvvtest xxxxloveable10AAAAAAAAAAAAhello sed123abctest11test456xxxxDDDvvvvtest xxxxloveable100AAAAAAAAAAAASed命令命令Sed的替换命令的替换命令ssed s/test/mytest/sed.txtsed s/test/mytest/g sed.t

    24、xt在整行范围内把在整行范围内把test替换为替换为mytest。如果没有。如果没有g标记,则只有每行第标记,则只有每行第一个匹配的一个匹配的test被替换成被替换成mytest。hello sed123abctest11test456xxxxDDDvvvvtest xxxxloveable10AAAAAAAAAAAAhello sed123abcmytest11test456xxxxDDDvvvvmytest xxxxloveable10AAAAAAAAAAAAhello sed123abcmytest11mytest456xxxxDDDvvvvmytest xxxxloveable10AA

    25、AAAAAAAAAASed命令命令Sed的替换命令的替换命令ssed s/test/&qqqq/sed.txt&符号表示替换换字符串中被找到的部份。符号表示替换换字符串中被找到的部份。$sed-n s:(love)able:1rs:p sed.txtlove被标记为被标记为1,所有,所有loveable会被替换成会被替换成lovers,最多存最多存9个个hello sed123abctest11test456xxxxDDDvvvvtest xxxxloveable10AAAAAAAAAAAAhello sed123abctestqqqq11test456xxxxDDDvvvvtestqqqq

    26、xxxxloveable10AAAAAAAAAAAAloversSed命令命令多命令编辑:多命令编辑:e命令命令 sed-e 1,2d-e s/test/check/sed.txt-e选项允许在同一行里执行多条命令。选项允许在同一行里执行多条命令。第一条命令删除第一条命令删除1至至2行,第二条命令用行,第二条命令用check替换替换test。命令的执行。命令的执行顺序对结果有影响。如果两个命令都是替换命令,那么第一个替换命顺序对结果有影响。如果两个命令都是替换命令,那么第一个替换命令将影响第二个替换命令的结果。令将影响第二个替换命令的结果。其实还可以使用其实还可以使用;来执行多条命令,结果一样

    27、来执行多条命令,结果一样sed-e 1,2d;s/test/check/sed.txt$sed-expression=s/test/check/-expression=/love/d sed.txt一个比一个比-e更好的命令是更好的命令是-expression。它能给。它能给sed表达式赋值。表达式赋值。同一匹配模式使用多个命名同一匹配模式使用多个命名 sed n/test/=;l sed.txt使用使用可以执行多个命令,如果不加可以执行多个命令,如果不加,效果是不一样的效果是不一样的sed n/test/=;l sed.txtSed命令命令Sed脚本脚本sed-f cmd.sed test.

    28、txt-#n1,$=#s/test/mytest/g;p/test/s/mytest/g;p-hello sed123abctest11test456xxxxDDDvvvvtest xxxxloveable10AAAAAAAAAAAA1234mytest11mytest5678mytest xxxx9101112Sed高级命令高级命令b lable 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。t label if分支,从最后一行开始,条件一旦满足或者分支,从最后一行开始,条件一旦满足或者T,t命令,命令,将导致分支

    29、到带有标号的命令处,或者到脚本的末尾。将导致分支到带有标号的命令处,或者到脚本的末尾。T label 错误分支,从最后一行开始,一旦发生错误或者错误分支,从最后一行开始,一旦发生错误或者T,t命令,命令,将导致分支到带有标号的命令处,或者到脚本的末尾。将导致分支到带有标号的命令处,或者到脚本的末尾。n读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。N追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。号码。P打印模板块的第一行。打印模板块的第一行。D删除模板块的第一行。删除模板块的第一行。h拷贝模板块的内容到内存中的缓冲区。拷贝模板块的内容到内存中的缓冲区。H追加模板块的内容到内存中的缓冲区追加模板块的内容到内存中的缓冲区g获得内存缓冲区的内容,并替代当前模板块中的文本。获得内存缓冲区的内容,并替代当前模板块中的文本。G获得内存缓冲区的内容,并追加到当前模板块文本的后面。获得内存缓冲区的内容,并追加到当前模板块文本的后面。X表示互换模板块中的文本和缓冲区中的文本。表示互换模板块中的文本和缓冲区中的文本。W file写并追加模板块的第一行到写并追加模板块的第一行到file末尾。末尾。30Thank you

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Sed教程-培训课件.ppt
    链接地址:https://www.163wenku.com/p-4019748.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库