【问题标题】:How to change the connection string with sed如何使用 sed 更改连接字符串
【发布时间】:2010-06-25 03:50:40
【问题描述】:

我在 ini 文件中有一个连接字符串,如下所示:

1 ...
2 ...
3 #someline:
n ConnectionString = "Data Source=localhost;Database=grid;User ID=grid;Password=grid;"

我想定位到第 n 行并复制数据源、数据库、用户 ID 和密码字段。那么如何在 sed 中实现呢?

【问题讨论】:

  • 我不太明白你想做什么 - 你所说的“复制数据源、数据库、用户 ID 和密码”是什么意思?
  • @David,将 locahost、grid、grid、grid 替换为真实的 Data Source、Database、User ID 和 Password
  • 行号是否已知,或者这是唯一包含“ConnectionString”(或其他使其唯一的文本)的行?

标签: linux shell sed


【解决方案1】:
sed -e 's/localhost/DataSource/' -e 's/grid/Database/' -e 's/grid/UserId/' -e 's/grid/Password'

这假定字段始终按此顺序排列,并且字符串 'grid' 不会出现在文本或任何先前替换的字段中。

【讨论】:

  • 第一个“grid”应该是“localhost”。
  • 确实如此。已编辑。谢谢。
【解决方案2】:

你可以使用 awk

$ awk -vds="Datasource" -vdb="dbname" -vuser="userid" -vpswd="pass" '/Connection/{$0="Data Source="ds";Database="db";User ID="userid";Password="pswd}1' file

【讨论】:

  • 看来 awk 会删除我文件中的所有其他行。
  • 不,代码不会删除所有其他行。你试过运行它吗?
猜你喜欢
  • 2019-04-13
  • 1970-01-01
  • 2019-09-16
  • 2011-04-02
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
  • 2023-04-06
  • 2012-04-24
相关资源
最近更新 更多