仅当行不存在时才将其追加到文件中 [英] Appending a line to a file only if it does not already exist

查看:62
本文介绍了仅当行不存在时才将其追加到文件中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I need to add the following line to the end of a config file:

include "/configs/projectname.conf"

到名为lighttpd.conf

我正在考虑使用sed来做到这一点,但我不知道该怎么做.

I am looking into using sed to do this, but I can't work out how.

我如何只在行不存在的情况下插入它?

How would I only insert it if the line doesn't already exist?

推荐答案

只需保持简单:)

grep + echo 就足够了:

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

  • -q安静
  • -x匹配整行
  • -F模式是纯字符串
  • https://linux.die.net/man/1/grep
    • -q be quiet
    • -x match the whole line
    • -F pattern is a plain string
    • https://linux.die.net/man/1/grep
    • 包含@cerin和@ thijs-wouters建议.

      incorporated @cerin and @thijs-wouters suggestions.

      这篇关于仅当行不存在时才将其追加到文件中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆