您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 08sed[C++教程网cppcourse]
sed第八章1本章目标什么是流编辑器sedsed地址定位方式sed编辑命令2流编辑器sedsed是一个精简的、非交互式的流式编辑器,它在命令行中输入编辑命令和指定文件名,然后在屏幕上查看输出。3逐行读取文件内容存储在临时缓冲区中,称为“模式空间”(patternspace),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。原文件内容并没有改变。sed简单用法4用法示例sed[options]sed_cmdsfiles选项-e连接多个编辑命令-f指定sed脚本文件名-n阻止输入行自动输出sed‘4,$d’test.insed‘3q’test.insed‘s/public/PUBLIC/’test.insed-n‘s/public/PUBLIC/p’test.in指定多个命令的三种方法51、用分号分隔命令sed's/public/PUBLIC/;s/north/NORTH/'test.in2、每个命令前放置-esed-e's/public/PUBLIC/'-e's/north/NORTH/'test.in3、使用分行命令功能,在输入单引号后按return键就会出现多行提示符()sed's/public/PUBLIC/s/north/NORTH/'test.in在脚本中使用sed命令6test.sed文件内容如下:s/public/PUBLIC/s/north/NORTH/sed-ftest.sedtest.insed命令语法sed_cmd:使用格式:[address]sed_edit_cmd(通常用单引号括起来),其中address为sed的行定位模式,用于指定将要被sed编辑的行。如果省略,sed将编辑所有的行。sed_edit_cmd为sed对被编辑行将要进行的编辑操作。7定位方式n表示第n行$表示最后一行m,n表示从第m行到第n行/pattern/查询包含指定模式的行。如/disk/、/[a-z]//pattern/,n表示从包含指定模式的行到第n行n,/pattern/表示从第n行到包含指定模式的行/模式1/,/模式2/表示从包含模式1到包含模式2的行!反向选择,如m,n!的结果与m,n相反sed_cmd中address的定位方式8常用sed编辑命令p:打印匹配行sed-n'3,5p'test.in//('3,5!p')sed-n'$p'test.insed-n'/north/p'test.in=:显示匹配行的行号sed-n'/north/='test.ind:删除匹配的行sed'/north/d'test.in常用的sed_edit_cmd9常用sed编辑命令a\:在指定行后面追加一行或多行文本,并显示添加的新内容,该命令主要用于sed脚本中。sed'/north/a\AAA\BBB\CCC'testi\:在指定行前插入一行或多行,并显示添加的新内容,使用格式同a\c\:用新文本替换指定的行,使用格式同a\l:显示指定行中所有字符,包括控制字符(非打印字符)sed-n'/north/l'test.in10常用sed编辑命令s:替换命令,使用格式为:sed-n's/north/NORTH/gp'test.inaddress:如果省略,表示编辑所有的行。g:全局替换p:打印被修改后的行wfname:将被替换后的行内容写到指定的文件中sed-n's/north/NORTH/wdata'test.insed's/[0-9][0-9]$/&.5/'datafile&符号用在替换字符串中时,代表被替换的字符串[address]s/old/new/[gpw]11常用sed编辑命令r:读文件,将另外一个文件中的内容附加到指定行后。sed'$rdata'test.inw:写文件,将指定行写入到另外一个文件中。sed-n'/public/wdata2'test.inn:将指定行的下面一行读入编辑缓冲区。sed-n'/public/{n;s/north/NORTH/p}'test.in对指定行同时使用多个sed编辑命令时,需用大括号“{}”括起来,命令之间用分号“;”格开。注意与-e选项的区别12常用sed编辑命令小结q:退出,读取到指定行后退出sed。sed'3q'test.inp打印匹配行s替换命令=显示匹配行的行号l显示指定行中所有字符d删除匹配的行r读文件a\在指定行后面追加文本w写文件i\在指定行前面追加文本n读取指定行的下面一行c\用新文本替换指定的行q退出sed常见的sed编辑命令小结13sed命令示例14Sed配合正则表达式能够发挥它的更大威力以下两个命令都能显式vsftpd.conf中的配置行grep-v'^#'/etc/vsftpd/vsftpd.confcat/etc/vsftpd/vsftpd.conf|sed's/^#.*$//g'|sed'/^$/d'总结什么是流编辑器sedsed地址定位方式sed编辑命令15
本文标题:08sed[C++教程网cppcourse]
链接地址:https://www.777doc.com/doc-3170581 .html