小编Jas*_*son的帖子

sed:替换 /etc/fstab 中的条目

我正在强化我们的一些系统。作为强化过程的一部分,我需要更新 /etc/fstab 中的一些条目以限制某些不同分区的功能。

话虽如此,我希望能够使用 sed 内联替换来更新行。以下是当前 /etc/fstab 的片段:

# /etc/fstab
# Created by anaconda on Wed Feb 21 09:37:23 2018
/dev/mapper/vg1-lv_root /                       ext4    defaults        1 1
/dev/mapper/vg1-lv_home /home                   ext4    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
Run Code Online (Sandbox Code Playgroud)

运行 sed 命令后,我希望文件如下所示:

# /etc/fstab
# Created by anaconda on Wed Feb 21 09:37:23 2018
/dev/mapper/vg1-lv_root /                       ext4    defaults        1 1
/dev/mapper/vg1-lv_home /home                   ext4    defaults,nodev        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
Run Code Online (Sandbox Code Playgroud)

基本上,我需要将“nodev”添加到所有不是根分区的 ext[2-4] 行。

我放在一起的 sed 命令接近于这样做,但无论出于何种原因,我都无法让正则表达式与“/”分区不匹配,因此它也总是更新该行。

sed '/^[^#].*ext[2-4]/s/defaults/defaults,nodev/g' /etc/fstab …
Run Code Online (Sandbox Code Playgroud)

sed awk text-processing fstab regular-expression

4
推荐指数
2
解决办法
3282
查看次数

标签 统计

awk ×1

fstab ×1

regular-expression ×1

sed ×1

text-processing ×1