我想在脚本中更改/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/

    10-10 09:00