2.2、编辑命令,直接跟在地址定界后面,无需分隔符。
d:删除地址定界中的行;
p:将模式空间中的行显示在终端屏幕上,可与n一起用;
a \text:在指定行的下一行添加文本,可使用\n追加多行;
i \text:在指定行的上一行添加文本,可使用\n追加多行;
c \text:用text内容替换匹配到的整行;
w /path/to/somefile:把模式空间匹配到的行保存至指定的文件中;
r /path/from/somefile:读取指定文件的内容至当前文件被模式匹配到的行下面;可用来实现文件合并;
!:表示条件取反,对非符合地址界定条件的行执行命令;
s///:表示对指定的行内的值查找并替换;用法同vim内的s选项;
五、相关实例
1、删除/etc/grub2.cfg文件中所有以空白字符开头的行的行首的所有空白字符;
sed 's@^[[:space:]]\+@@' /etc/grub2.cfg
2、删除/etc/fstab文件中所有以#开头的行的行首的#号及#后面的所有空白字符;
sed 's@^#[[:space:]]*@@' /etc/fstab
3、输出一个绝对路径给sed命令,取出其目录,其行为类似于dirname;
echo "/var/log/ppp/" | sed 's@[^/]\+/\?$@@'
注意:范围为从行尾开始所有的非/字符,最后一个/可有可无,?需要用\转义才能生效。