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