|
sed: (Stream EDitor,行编辑器)
用法:
sed [option]... 'script' inputfile ...
常用选项:
-n:不输出模式中的内容至屏幕
-e:多点编辑
-f:从指定文件中读取编辑脚本
-r:支持使用扩展正则表达式
地址定界:
1.不给地址,对全文进行处理
2.单地址:
#:指定的行;
/pattern/:被此处模式所能够匹配到的每一行
3.地址范围:
#,#
#,+#
/pat1/,/pat2/
#,/pat1/
编辑命令:
d:删除
p:显示模式空间中的内容
a \text: 在行后面追加文本;支持使用\n实现多行追加
如:sed '/^UUID/a \hello' /etc/fstab
i \text: 在行前面插入文本;支持使用\n实现多行插入;
如:sed '/^UUID/i \hello' /etc/fstab
c \text: 替换行为单行或多行文本
如:sed '/^UUID/c \hello' /etc/fstab
w /path/to/file:保存模式空间中的内容到指定文件中
如:sed '/^UUID/w /home/zl/uuid.txt' /etc/fstab
r /path/from/file :读取指定文件的文本流到模式空间中匹配到的行的行后
如:sed '/^UUID/r /home/zhanglei/uuid.txt' /etc/fstab
=:为模式空间中的行打印行号,为匹配到的行的上一行添加行号
如:sed '/^UUID/=' /etc/fstab
!:取反条件
s///:支持使用其他分隔符,s@@@,s###;
替换标记:
g:行内全替换
删除/boot/grub/grub.conf文件中所有以空白开头的行行首的空白字符;
# sed 's@^[[:space:]]\+@@' /boot/grub/grub.conf
删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的(行首的#和空白字符)
#sed 's@^#[[:space:]]\+@@' /etc/fstab
echo 一个绝对路径给sed命令,取出其基名;取出其目录名
#echo "/etc/sysconfig/" |sed 's@[^/]\+/\?$@@'
|
|
|