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

如何用Shell脚本在odbc.ini的[Test]节末尾添加参数?

解决ODBC.ini中向指定节末尾添加配置的问题

现有odbc.ini内容:

[Test]
Driver=/path/to/driver
Database=test_db

[AnotherSection]
Driver=/another/pathhere

原sed命令会把Password=5432添加到[Test]行的下一行,无法满足添加到节末尾的需求,以下是两种可行方案:

方案一:使用sed命令

sed -n '
/^\[Test\]/ {
  :test_section
  p
  n
  if (/^\[/ || /^$/) {
    i\Password=5432
    p
    b rest
  }
  b test_section
}
p
:rest
' odbc.ini

命令说明:

  • -n:关闭默认输出,仅打印指定内容
  • 匹配到[Test]行时进入循环:
    • 打印当前行并读取下一行
    • 若下一行是新节(以[开头)或空行,先插入Password=5432,再打印该行,随后跳转处理剩余内容
    • 否则继续循环处理Test节的每一行
  • 非Test节的行直接打印

方案二:使用awk脚本(更易读维护)

awk '
/^\[Test\]/ { in_test = 1 }
in_test && (/^\[/ || $0 == "") {
    print "Password=5432"
    in_test = 0
}
{ print }
END { if (in_test) print "Password=5432" }
' odbc.ini

脚本说明:

  • 匹配到[Test]时,标记in_test=1,表示进入Test节
  • 处于Test节内时,若遇到新节开头或空行,先打印Password=5432,再关闭标记
  • 打印所有行(包括Test节内容、空行及其他节内容)
  • 若文件结束时仍处于Test节(Test为最后一个节),则追加Password=5432

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 22:02:15