[root@server ~]# sed -n '/^#/p' /tmp/fstab 显示已#开头的所有行。## /etc/fstab# Created by anaconda on Thu Jun 22 22:54:39 2017## Accessible filesystems, by reference, are maintained under '/dev/disk'# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info#
-n是为了仅显示匹配的结果。因为sed默认会把不匹配条件的内容也全部标准输出。
d 删除
sed '1,5d' /tmp/fstab 文件中第一到第五行删除sed '/^#/d' /tmp/fstab 文件中以#开头的行删除
a 追加到行之下
sed '5a/test/' /tmp/fstab 文件中第五行之下追加/test/ sed '/^#/a/test/' /tmp/fstab 文件中以#号开头的行下全部追加/test/
i 插入到行之上
sed '5i/test/' /tmp/fstab 文件中第五行之上插入/test/ sed '/^#/i/test/' /tmp/fstab 文件中以#号开头的行之上全部插入/test/
c 替换整行文本
sed '/^[^#]/clocaldev' /tmp/fstab 非#号开头的行全部替换为localdev
w 保存匹配内容到指定文件
sed '/^[^#]/w/tmp/sedtest.txt' /tmp/fstab 把文件中不是#好开头的行全部保存到/tmp/sedtest.txt 但是执行时你会发现,fstab还是会全部显示一遍。如果不需要显示可以加-n选项。
r 读取内容到文件指定位置
sed '1,5r/tmp/id.txt' /tmp/fstab 文件中第一到第五行每行下面都追加id.txt的内容。 sed '/^UUID/r/tmp/id.txt' /tmp/fstab 文件中以UUID开头的每行下面最佳id.txt的内容。