sed,一种流式编辑器 (Stream Editor) ,针对文本的行进行处理
基本使用范式:
查找文本:
1 . -n
: 打印符合条件的行
sed -n '2'p filename #表示输出第二行
sed -n '2,$'p filename # 表示从第二行到末尾输出文本的内容
sed -n '/root:/'p filename #表示输出含有 'root:' 的行
#此外sed如grep也支持正则表达式
注意: 这里的 /
可以使用 @
和 #
替换
-
-e
: 连缀命令,实现多个行为
sed -n -e '1'p -e '/root:/'p filename #打印第一行和含有 'root:' 的行, '//' 不能省略
删除文本:
sed '1'd filename #删除第一行
sed '1,3'd filename #删除第一行到第三行
sed '3,$'d filename # 删除3行到文档的末尾
sed '/root:/'d filename# 删除含有 'root:' 的行
替换文本: 最强大的命令
sed '1,5s/目标字符串/替换后的字符串/g' filename# s 表示是替换, g 表示全局替换.类似于vim的替换指令
替换和删除有相通之处,可以使用替换的命令删除一些能使用正则表达式匹配的内容.如
sed '1,$s/[0-9a-zA-Z]//g ' filename #删除所有的字母和数字
sed '1,$s#[0-9a-zA-Z]##g ' filename'# 删除所有的字母和数字
sed '1,$s#^$##g' filename # 删除空行