- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
sed command
1.简介
sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。
sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空 间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示。处理完输入 文件的最后一行后,sed便结束运行。sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。
2.定址
定址用于决定对哪些行进行编辑。地址的形式可以是数字、正则表达式、或二者的结合。如果没有指定地址,sed将处理输入文件的所有行。
?
地址是一个数字,则表示行号;是“$符号,则表示最后一行。例如:?
sed -n 3p datafile只打印第三行 ?
地址是逗号分隔的,那么需要处理的地址是这两行之间的范围(包括这两行在内)。范围可以用数字、正则表达式、或二者的组合表示。例如:
sed 2,5d datafile#删除第二到第五行sed /My/,/You/d datafile#删除包含My的行到包含You的行之间的行sed /My/,10d datafile#删除包含My的行到第十行的内容 ?
?
3.命令与选项
sed命令告诉sed如何处理由地址指定的各输入行,如果没有指定地址则处理所有的输入行。
?
3.1 sed命令
?命令 ?功能 ?a\ ?在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用“\”续行 ?c\ ?用此符号后的新文本替换当前行中的文本。多行时除最后一行外,每行末尾需用\续行 ?i\ ?在当前行之前插入文本。多行时除最后一行外,每行末尾需用\续行 ?d ?删除行 ?h ?把模式空间里的内容复制到暂存缓冲区 ?H ?把模式空间里的内容追加到暂存缓冲区 ?g ?把暂存缓冲区里的内容复制到模式空间,覆盖原有的内容 ?G ?把暂存缓冲区的内容追加到模式空间里,追加在原有内容的后面 ?l ?列出非打印字符 ?p ?打印行 ?n ?读入下一输入行,并从下一条命令而不是第一条命令开始对其的处理 ?q ?结束或退出sed ?r ?从文件中读取输入行 ?! ?对所选行以外的所有行应用命令 ?s ?用一个字符串替换另一个 ?g ?在行内进行全局替换 ? ?w ?将所选的行写入文件 ?x ?交换暂存缓冲区与模式空间的内容 ?y ?将字符替换为另一字符(不能对正则表达式使用y命令) ?
3.2 sed选项
?选项 ?功能 ?-e ?进行多项编辑,即对输入行应用多条sed命令时使用 ?-n ?取消默认的输出 ?-f ?指定sed脚本的文件名 ?
?
4.退出状态
sed不向grep一样,不管是否找到指定的模式,它的退出状态都是0。只有当命令存在语法错误时,sed的退出状态才不是0。
5.正则表达式元字符
?与grep一样,sed也支持特殊元字符,来进行模式查找、替换。不同的是,sed使用的正则表达式是括在斜杠线/之间的模式。
如果要把正则表达式分隔符/改为另一个字符,比如o,只要在这个字符前加一个反斜线,在字符后跟上正则表达式,再跟上这个字符即可。例如:sed -n \o^Myop datafile
?
?元字符 ?功能 ?示例 ?^ ?行首定位符 ?/^my/? 匹配所有以my开头的行 ?$ ?行尾定位符 ?/my$/? 匹配所有以my结尾的行 ?. ?匹配除换行符以外的单个字符 ?/m..y/? 匹配包含字母m,后跟两个任意字符,再跟字母y的行 ?* ?匹配零个或多个前导字符 ?/my*/? 匹配包含字母m,后跟零个或多个y字母的行 ?[] ?匹配指定字符组内的任一字符 ?/[Mm]y/? 匹配包含My或my的行 ?[^] ?匹配不在指定字符组内的任一字符 ?/[^Mm]y/? 匹配包含y,但y之前的那个字符不是M或m的行 ?\(..\) ?保存已匹配的字符 ?1,20s/\(you\)self/\1r/? 标记元字符之间的模式,并将其保存为标签1,之后可以使用\1来引用它。最多可以定义9个标签,从左边开始编号,最左边的是第一个。此例中,对第1到第 20行进行处理,you被保存为标签1,如果发现youself,则替换为your。 ? ?保存查找串以便在替换串中引用 ?s/my/****/??符号代表查找串。my将被替换为**my** ?\ ?词首定位符 ?/\my/? 匹配包含以my开头的单词的行 ?\ ?词尾定位符 ?/my\/? 匹配包含以my结尾的单词的行 ?x\{m\} ?连续m个x ?/9\{5\
文档评论(0)