fstabの特定の項目へのコメント/コメント解除

fstabの特定の項目へのコメント/コメント解除

fstabの特定の行にコメントを付けたりコメントを解除したりできるスクリプトを作成しようとしています。

パラメータがパスでない場合は正常に機能します。

# add comment
sed -i '/db1/s/^/#DO NOT EDIT THIS LINE /g' /etc/fstab

# remove comment
sed -i '/db1/s/^#DO NOT EDIT THIS LINE //g' /etc/fstab

ただし、スラッシュを含む変数を使用しようとすると機能しません。

このような項目が複数ある場合は、そのうちのいくつかについてのみコメントをお願いします。

/dev/disk/by-uuid/f40f5a40-4772-479e-9041-330c3afbfb40 /oradata/db1 auto nosuid,nodev,nofail,x-gvfs-show 0 0
/dev/disk/by-uuid/f40f5a40-4772-479e-9041-330c3afbfb40 /oradata/db2 auto nosuid,nodev,nofail,x-gvfs-show 0 0
/dev/disk/by-uuid/f40f5a40-4772-479e-9041-330c3afbfb40 /oradata/db3 auto nosuid,nodev,nofail,x-gvfs-show 0 0

さまざまな解決策を試しましたが、何も機能しません。誰もが正しい方向に私を指すことができますか?

ありがとう

ベストアンサー1

このように:

sed -i '/db1/s/^/#/g' /etc/fstab

またはより強力な一致:

perl -i -pe 's/^/#/g if m!/oradata/db1!' /etc/fstab

より強力なマッチングが必要な場合sed

sed -i '/oradata\/db1/s/^/#/g' /etc/fstab

出力

#/dev/disk/by-uuid/f40f5a40-4772-479e-9041-330c3afbfb40 /oradata/db1 auto nosuid,nodev,nofail,x-gvfs-show 0 0
/dev/disk/by-uuid/f40f5a40-4772-479e-9041-330c3afbfb40 /oradata/db2 auto nosuid,nodev,nofail,x-gvfs-show 0 0
/dev/disk/by-uuid/f40f5a40-4772-479e-9041-330c3afbfb40 /oradata/db3 auto nosuid,nodev,nofail,x-gvfs-show 0 0

おすすめ記事