sed是一个流编辑器,是文本处理中非常有用的工具。处理时,将当前处理的行存储在一个临时缓冲区中,这个缓冲区称为“模式空间”(oatternspace),然后使用sed命令对缓冲区的内容进行处理,处理完成后,将缓冲区的内容发送到屏幕显示。然后安排下一行,重复此操作直到文件末尾。除非使用写命令更新内容,否则文件内容不会改变。寻址用于确定编辑哪些行。地址可以是数字、正则表达式或两者的组合形式。如果没有指定地址,sed将处理输入文件的所有行。一、sed语法sed命令的基本格式如下:sed[选项][脚本命令]文件名该命令常用选项及含义如表1所示。成功使用sed命令的关键是掌握多种脚本命令和格式,可以帮助您自定义编辑文件的规则。2.sed脚本命令sedsreplacescript命令该命令的基本格式为:[address]s/pattern/replacement/flags其中address表示具体要操作的行,pattern表示要替换的内容,而replacement指的是要替换的新内容。关于指定具体操作线路(地址)的用法,这里就不做说明了,后面的文章会详细介绍。该命令中常用的标志flags如表2所示。三、实例演示1、只打印第三行sed-n'3p'/var/log/yum.log2。只查看第3行到第9行的文件sed-n'3,9p'/var/log/yum.log3。过滤特定字符串并显示正行sed-n'/perl/p'/var/log/yum.log4的内容。打印1-5行,显示行号sed-n-e'1,5p'-e'='/var/log/yum.log5。替换sed的/disabled/enforcing/g'/etc/selinux/configsed-i's/disabled/enforcing/g'/etc/selinux/config6.正则匹配IP和子网掩码ifconfig|sed-n'2p'ifconfig|sed-n'2p'|sed-r's#.*r:(.*)B.*k:(.*)#\1\2#g'--(.*)表示匹配项,然后可以用\1提取第一个括号中的匹配内容,\2提取第二个括号中的匹配内容7.sed使用sed的#,##h'xx.txtincorrectly|cut-d""-f3,5xx.txt<--用法不正确,之前已经处理过了,再用cut查看h.txt文件sed的#,##h'xx.txt|cut-d""-f3,5-->正确用法
