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