LINUX - grep&注释掉fstab的行

时间:2014-11-12 10:54:34

标签: bash shell awk sed grep

我在超过500台服务器上更新fstab。当前的fstab具有旧的和新的NFS共享线。我需要评论旧线。例如:

NFS.old - Temp File
LineA
LineB
LineC

/etc/fstab - Current
Line1
Line2
LineA
LineB
LineC
Line3
Line4

使用来自NFS.old的输入运行for循环,在/ etc / fstab&中找到行。评论

/etc/fstab - Expected fstab
Line1
Line2
#LineA
#LineB
#LineC
Line3
Line4

谢谢!

3 个答案:

答案 0 :(得分:1)

使用awk你可以这样做:

awk 'FNR==NR {a[$0];next} ($0 in a){$0="#" $0} 1' NFS.old fstab
Line1
Line2
#LineA
#LineB
#LineC
Line3
Line4

答案 1 :(得分:0)

您还可以将此单行bash脚本与sed命令

一起使用
while read line ; do sed -i  "s/^$line$/#&/" /etc/fstab; done < NFS.old

<强>输出:

cat /etc/fstab
Line1
Line2
#LineA
#LineB
#LineC
Line3
Line4

注意: 超级用户只能访问/ etc / fstap。

答案 2 :(得分:0)

awk 'NR==FNR{old[$0];next} {print ($0 in old ? "#" : "") $0}' NFS.old /etc/fstab