仅当文件尚不存在时才将行附加到文件中

新手上路,请多包涵

我需要将以下行添加到配置文件的末尾:

 include "/configs/projectname.conf"

到一个名为 lighttpd.conf

我正在考虑使用 sed 来执行此操作,但我不知道如何操作。

如果该行不存在,我将如何仅插入它?

原文由 Benjamin Dell 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 647
2 个回答

保持简单:)

grep + echo 应该足够了:

 grep -qxF 'include "/configs/projectname.conf"' foo.bar || echo 'include "/configs/projectname.conf"' >> foo.bar

_编辑:合并@cerin 和@thijs-wouters 建议_。

原文由 drAlberT 发布,翻译遵循 CC BY-SA 4.0 许可协议

尝试这个:

 grep -q '^option' file && sed -i 's/^option.*/option=value/' file || echo 'option=value' >> file

原文由 kev 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题