使用sed更改/ etc/fstab

Raz*_*zer 5 unix sed

我想/etc/fstab在脚本内部进行更改.我想将acl属性添加到根分区.

一个fstab行条目是这样的:

UUID=730aee20-52b7-4920-75cd-d0d995ef2445 /   ext3   errors=remount-ro 0   1
Run Code Online (Sandbox Code Playgroud)

我想将其更改为:

UUID=730aee20-52b7-4920-75cd-d0d995ef2445 /   ext3    acl,errors=remount-ro 0   1
Run Code Online (Sandbox Code Playgroud)

我想:1.用root分区搜索第/ 2 行.acl之后插入/

我怎么能用sed做到这一点?

Sie*_*geX 7

我们都有谁需要一些第三方工具awk

awk '$2~"^/$"{$4="acl,"$4}1' OFS="\t" /etc/fstab
Run Code Online (Sandbox Code Playgroud)

示例输出

$ 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
Run Code Online (Sandbox Code Playgroud)

说明

  1. $2~"^/$"搜索第二个字段$2以查看它是否与正斜杠相匹配^/$
  2. {$4="acl,"$4}如果我们看到匹配,请将acl添加到第4个字段的开头$4
  3. }1这是一个awk相当于print $0,即打印整行的快捷方式(包括我们可能做出的任何改动)
  4. OFS="\t"将输出字段分隔符OFS设置为选项卡\t.默认为空格
  5. /etc/fstab 我们要用作输入的文件