Hi
I'm trying to comment out specific lines from /etc/fstab file, for simplicity I'm trying to use perl one liner but it errors out,
Below is the Perl oneliner I'm using,
perl -wlp -i -e 'BEGIN{$flag=0}if (!/root/) && (!/boot/) && (!/tmpfs/) ) {$flag =1;} elsif (/^$/) {$flag=0} if ($flag) {s/^/#/;}' /tmp/fstab
# cat /tmp/fstab
/dev/rootvg/root / ext4 defaults 1 1
/dev/rootvg/home /home ext4 defaults 1 2
/dev/rootvg/usr /usr ext4 defaults 1 2
/dev/rootvg/tmp /tmp ext4 defaults 1 2
/dev/rootvg/opt /opt ext4 defaults 1 2
/dev/rootvg/var /var ext4 defaults 1 2
/dev/rootvg/core /var/core ext4 defaults 1 2
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/rootvg/swap swap swap defaults 0 0
/dev/testvg/logslv /logs ext4 defaults 1 2
/dev/testvg/backuplv /backup ext4 defaults 1 2
/dev/testvg/dbcachelv /dbcache ext4 defaults 1 2
Error:
syntax error at ./fstab.pl line 2, near "i -e "
Execution of ./fstab.pl aborted due to compilation errors.
---------- Post updated at 05:10 PM ---------- Previous update was at 02:29 PM ----------
Just an fyi...I'm able to comment/uncomment if I grep for just one word but not for multiple words, it comments out any line not containing 'root' word in the file /tmp/fstab...for eg..
perl -wlp -i -e 'BEGIN{$flag=0}if (!/root/) {$flag =1;} elsif (/^$/) {$flag=0} if ($flag) {s/^/#/;}'