【发布时间】:2017-05-09 14:35:34
【问题描述】:
我正在编写一个 bash 脚本来安装 Phoenix 应用程序。我想在我的配置文件的deps 部分添加一个依赖项,而不依赖于行号。
31 # Type `mix help deps` for examples and options.
32 defp deps do
33 [{:phoenix, "~> 1.2.1"},
34 {:phoenix_pubsub, "~> 1.0"},
35 {:phoenix_ecto, "~> 3.0"},
36 {:postgrex, ">= 0.0.0"},
37 {:phoenix_html, "~> 2.6"},
38 {:phoenix_live_reload, "~> 1.0", only: :dev},
39 {:gettext, "~> 0.11"},
40 {:cowboy, "~> 1.0"}]
41 end
在这种情况下,我想将第 40 行中的 ] 转换为逗号,并在第 40 行下方插入 {:foo, "~> 1.0"}]。我假设您可以使用 defp deps do 作为 sed 中的标记或awk 表达式,然后定位后面的第一个 ]。
最好的方法是什么?
【问题讨论】:
-
是的,你有一个逻辑开始......这里有一些东西可以帮助你尝试命令stackoverflow.com/questions/38972736/…,然后询问你是否卡住了
-
@Sundeep 事实证明,这是配置文件中唯一出现
}]模式的地方,所以一个简单的sed无需环顾四周即可。但是,这超出了我最初的问题和意图。 @sat 有一个可靠的答案(尽管对于 GNU sed,OSX sed 不同)...如果您可以在 awk 中提供更通用的解决方案,我会将其标记为正确的。
标签: regex awk sed grep phoenix-framework