sed 命令注释配置文件中最后一行

今天安装kubernetes中 想永久关闭swap分区,要注释掉 /etc/fstab文件关于swap分区,swap在/etc/fstab 文件中如下: 其中swap分区位于最后一行,问题也就变成了,怎么使用“#”注释一个文件中...

今天安装kubernetes中 想永久关闭swap分区,要注释掉 /etc/fstab文件关于swap分区,swap在/etc/fstab 文件中如下:

attachments-2020-03-MJ5HIQRk5e622734b0c08,png


其中swap分区位于最后一行,问题也就变成了,怎么使用“#”注释一个文件中的最后一行的问题了【注:linux中的注释符为 :#】。


linux中sed命令的 $ 是匹配最后一行,比如: sed -n '$p' /etc/fstab    打印出最后一行

我们要的是“原地”修改最后一行,在最后一行的最前面加上#


可以使用下面的命令实现:

sed -i '$s/^/#/' /etc/fstab

里面替换的部分为: 使用 # 替换 ^ , 位置界定为 $ 


上面注释掉了swap 需要重启机器, 如果要临时关闭,需要使用:


swapoff -a && sysctl -w vm.swappiness=0


【注】 sed -i '$s/^/#/' /etc/fstab 如果通过 ssh 远程执行会报错


如: ssh 192.168.1.64 "sed -i '$s/^/#/g' /etc/fstab"     会报错  sed: -e expression #1, char 4: comments don't accept any addresses


这里涉及到双引号下 $ 是变量的问题了,需要转移才可以

正确的方式为:


ssh 192.168.1.65 "sed -i '\$s/^/#/' /etc/fstab"


  • 发表于 2020-03-06 19:15
  • 阅读 ( 54 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
shitian
shitian

662 篇文章

作家榜 »

  1. shitian 662 文章
  2. 石天 437 文章
  3. 每天惠23 33 文章
  4. 小A 29 文章