如何使用 sed 在 fstab 中注释行?

如何使用 sed 在 fstab 中注释行?

我想评论fstab使用sed命令中的某些行。以下是我需要评论的几行:

172.0.0.1:/export/project/common /nfs/share nfs4 rw,bg,hard,nointr,rsize=131072,wsize=131072,proto=tcp
172.0.0.1:/export/project/share1 /nfs/shares1 nfs4 rw,bg,hard,nointr,rsize=131072,wsize=131072,proto=tcp

我尝试使用这个命令但它不起作用:

sed -i '/172.0.0.1:/export/project/common /nfs/share nfs4 rw,bg,hard,nointr,rsize=131072,wsize=131072,proto=tcp /s/^/#/' /etc/fstab_test
sed -i '/172.0.0.1:/export/project/share1 /nfs/shares1 nfs4 rw,bg,hard,nointr,rsize=131072,wsize=131072,proto=tcp /s/^/#/' /etc/fstab_test

答案1

尝试这个,

sed -e '/[/]/common s/^/#/' /etc/fstab
sed -e '/[/]/share1 s/^/#/' /etc/fstab

指定此项/[/]common/将仅选择包含 /common 的行。

如果这有效,则替换-e-i以执行对文件的更改。

你可以这样做awk

awk '/[/]common/{$0="#"$0} 1' /etc/fstab >/etc/fstab.tmp && mv /etc/fstab.tmp /etc/fstab 
awk '/[/]share1/{$0="#"$0} 1' /etc/fstab >/etc/fstab.tmp && mv /etc/fstab.tmp /etc/fstab 

指定此项/[/]common/ {$0="#"$0}将选择包含 /common 的行,并在行的开头放置 #。

相关内容