【问题标题】:sed add line at the end of filesed 在文件末尾添加一行
【发布时间】:2017-10-14 11:12:49
【问题描述】:

我尝试使用 sed 在文件 (/root/test.conf) 的末尾添加一行。我使用 FreeBSD,当我尝试添加一个简单的行时,我总是会遇到几个错误,例如:

  • of 命令中的额外字符
  • 未定义标签“est.conf”

文件是这样的:

#Test
firstLine
secondLine

!p.p
*.*

我想添加如下内容:

(return \n)
!word
other (5 tab between "other" and "/usr/local") /usr/local

如果 sed 无法实现,还有其他选择吗?

谢谢!

【问题讨论】:

    标签: shell sed freebsd csh


    【解决方案1】:

    听起来您根本不需要使用 sed,也许只需 cat 和 heredoc:

    cat >>test.conf <<EOF
    whatever you want here
    
    more stuff
    EOF
    

    &gt;&gt; 以“追加”模式打开test.conf,因此行被添加到文件的底部,&lt;&lt;EOF 是一个heredoc,允许您通过标准输入将行传递给 cat。

    要在交互式终端中添加文字标签,您可以使用 Ctrl-v 后跟 Tab

    【讨论】:

    • 请注意,对于问题中的具体示例,您可能必须引用EOF! 可能会导致历史扩展问题。
    【解决方案2】:

    您不需要像 sed 这样的特殊工具来在文件末尾添加一些行。

    $ echo "This is last line" >>file 
    #or
    $ printf "This is last line\n" >>file
    

    在几乎任何平台上都可以正常工作。您可能需要转义特殊字符,或者将它们括在单引号/双引号中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多