You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过shell脚本保留文件前两行并将剩余所有行注释掉

Shell脚本实现保留前2行、注释后续所有行的方案

你可以直接用sed行匹配替换实现需求,不需要复杂的行数判断和循环操作,实现代码如下:

#!/bin/bash

IP=$(hostname -I)
file_path="/tmp/test"

# 第3行到文件末尾所有行首加#注释
sed -i '3,$ s/^/# /' "$file_path"

# 追加需要新增的主机记录行
echo "$IP $HOSTNAME.yyyy.xxxx.com $HOSTNAME" >> "$file_path"

命令说明

  • sed的3,$匹配规则:自动匹配从第3行到文件最后一行的所有内容,如果文件总行数≤2,该规则不会命中任何行,脚本不会做额外修改,天然兼容边界场景,不需要额外判断行数
  • s/^/# /是正则替换操作,^匹配行首位置,替换为# 即可实现行首加注释的效果
  • -i参数表示直接修改原文件,无需生成临时文件中转

注意:如果是在macOS环境运行,sed的-i参数需要指定空备份后缀,对应命令改为sed -i '' '3,$ s/^/# /' "$file_path"即可,Linux环境无需调整。

内容的提问来源于stack exchange,提问作者Pratik Mishra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 17:06:04