当前位置: 首页 > 面试题库 >

仅当行不存在时才将其追加到文件中

井翰
2023-03-14
问题内容

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

include "/configs/projectname.conf"

到一个名为 lighttpd.conf

我正在寻找sed用于执行此操作的方法,但无法解决。

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


问题答案:

保持简单:)

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

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



 类似资料:
  • 问题内容: 我有2张桌子- : 第二张桌子- : 我只需要选择未取消的预订(在此示例中仅为ID 3)。我可以轻松地选择带有简单条件的已取消,但由于未在此处取消工作,因此我在努力避免未取消。 问题答案: 要么: 第一个版本更直观,但是我认为第二个版本通常可以获得更好的性能(假设您在联接中使用的列上有索引)。 第二个版本有效,因为返回第一个表中所有行的一行。当条件成功,这些行会包括从第二表中的列,就像

  • 问题内容: 我希望根据该文件是否已经存在来写一个文件,仅在不存在的情况下才写(实际上,我希望继续尝试文件,直到找到一个不存在的文件为止)。 下面的代码显示在其中一个潜在的攻击者可以插入一个符号,作为建议的方式这篇文章中该文件的测试和写入的文件之间。如果代码以足够高的权限运行,则可能会覆盖任意文件。 有什么办法解决这个问题? 问题答案: 编辑 :另请参见DaveJones的回答:从Python3.3

  • 我们的备份系统创建。bak文件,我们可以使用它来恢复文件,如果我们遇到问题。如果不处理,这些文件将填满我们的存储空间,因此我找到了一个批处理文件,每天创建新的批处理文件后,我都可以运行该文件来删除旧的批处理文件。 文件-p“c:\xxx\yyy”-s-m*。bak/D-2/C“cmd/C del@path” 这工作正常,但我想创建一个安全网,以便无论出于何种原因,我们的备份系统出现故障并且没有创建

  • 问题内容: 这个问题已经在这里有了答案 : 检查是否存在一行,否则插入 (11个答案) MySQL条件插入 (12个答案) 6年前关闭。 我想运行一组查询以将一些数据插入SQL表中,但前提是要满足满足某些条件的记录。该表有4个字段:(主要),和 我在查询3个字段:,和。 所以我的查询将是这样的: 因此,我只想在与和匹配的记录尚不存在时插入数据。如果上面的方法是正确的,那么我就觉得这是一种效率很低的

  • < code>fd.append("upload ",file)产生, 产生, 但我需要这个, 这是我的代码:

  • 问题内容: 我正在尝试创建一个每次将文本添加到该文本区域时都会滚动到底部的。否则,用户应该能够向上滚动并查看上一条消息。我使用以下代码: 到目前为止,这段代码似乎使我每次向using 附加内容时,文本区域都滚动到文本区域的底部。 但是,用户不能使用滚动条滚动到顶部以查看上一条消息。有没有办法解决这个问题?我应该用来实现这一目标吗? 问题答案: 签出智能滚动。 如果滚动条在底部,则在添加文本后,您将