Linux 使用sed替换fstab中的UUID值

Linux 使用sed替换fstab中的UUID值,linux,replace,sed,Linux,Replace,Sed,我的fstab有点像以下内容: UUID=somevalue1 UUID=somevalue2 我想编辑第二个UUID。如何使用sed实现这一点 因此,在编辑fstab之后,它将如下所示: UUID=somevalue1 UUID=somevalue3 任何帮助都将非常感激如果你知道一些价值观,那么你可以做如下事情 VALUETOREPLACE='somevalue2' sed "s/^UUID=$VALUETOREPLACE$/UUID=somevalue3/" </etc/fs

我的fstab有点像以下内容:

UUID=somevalue1  
UUID=somevalue2
我想编辑第二个UUID。如何使用sed实现这一点

因此,在编辑fstab之后,它将如下所示:

UUID=somevalue1
UUID=somevalue3

任何帮助都将非常感激

如果你知道一些价值观,那么你可以做如下事情

VALUETOREPLACE='somevalue2'
sed "s/^UUID=$VALUETOREPLACE$/UUID=somevalue3/" </etc/fstab
您可以尝试将该
2
更改为
3
或任何其他内容,然后选择另一个第n个匹配项。还要注意的是,在现代系统/etc/fstab中经常有这样一行:

#装置;这可以与UUID=一起使用,作为命名设备的更可靠的方法


它也碰巧有
UUID=
,这可能会弄乱您的编号。

有sed s命令,您可以使用它,请参见
man sed
sed ':a;N;$!ba;s/UUID=[A-Fa-f0-9-]*/UUID=somevalue3/2' </etc/fstab