sed在文件末尾添加行

时间:2017-05-15 15:29:31

标签: shell sed freebsd csh

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

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

文件是这样的:

#Test
firstLine
secondLine

!p.p
*.*

我想添加这样的内容:

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

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

谢谢!

2 个答案:

答案 0 :(得分:1)

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

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

more stuff
EOF

>>在&#34中打开test.conf;追加&#34;模式,因此行被添加到文件的底部,<<EOF是一个heredoc,允许您通过标准输入将行传递给cat。

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

答案 1 :(得分:1)

您不需要任何特殊工具(如sed)在文件末尾添加一些行。

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

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