我想在脚本中更改/etc/fstab
。我想将acl
属性添加到根分区。
一个fstab
行条目如下所示:
UUID=730aee20-52b7-4920-75cd-d0d995ef2445 / ext3 errors=remount-ro 0 1
我想将其更改为:
UUID=730aee20-52b7-4920-75cd-d0d995ef2445 / ext3 acl,errors=remount-ro 0 1
我想:
1.搜索行与根分区
/
2.在acl
之后插入/
我如何用sed做到这一点?
最佳答案
当我们都有awk
时,谁需要一些第三方工具?
awk '$2~"^/$"{$4="acl,"$4}1' OFS="\t" /etc/fstab
示例输出
$ awk '$2~"^/$"{$4="acl,"$4}1' OFS="\t" /etc/fstab
/dev/sda2 swap swap defaults 0 0
/dev/sda5 / ext4 acl,defaults 1 1
/dev/sda1 /boot ext4 defaults 1 2
/dev/sda6 /home ext4 defaults 1 2
/dev/sdb1 /backup ext4 defaults 1 2
#/dev/cdrom /mnt/cdrom auto noauto,owner,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
proc /proc proc defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
解释
$2~"^/$"
搜索第二个字段$2
以查看其是否与正斜杠本身匹配^/$
{$4="acl,"$4}
如果看到匹配项,请在第4个字段的开头添加acl $4
}1
这是awk
快捷方式,等效于print $0
,即打印整行(包括我们可能进行的任何更改)OFS="\t"
将输出字段分隔符OFS
设置为选项卡\t
。默认值为space /etc/fstab
我们要用作输入的文件关于unix - 使用sed更改/etc/fstab,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9118123/