shell sed在文件末尾添加行

fdx2calv  于 2023-01-02  发布在  Shell
关注(0)|答案(3)|浏览(511)

我尝试用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不可行,还有其他选择吗?
谢谢大家!

k4emjkb1

k4emjkb11#

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

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

more stuff
EOF

>>以“append”模式打开test.conf,因此行被添加到文件的底部,并且<<EOF是一个heredoc,允许您通过标准输入将行传递给cat。
要在交互式终端中添加文本制表符,可以使用Ctrl-v,然后使用Tab。

qacovj5a

qacovj5a2#

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

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

几乎在任何平台上都能很好地工作。不过你可能需要对特殊字符进行转义,或者用单/双引号将它们括起来。

vaqhlq81

vaqhlq813#

如果您在sed中还有其他事情要做,那么在末尾追加只是其中之一:

sed -e "\$a A-line-at-the-end.' <infile >outfile
sed -e '$a A-Line-at-the-end.'  <infile >outfile
sed -e '$a\A-line-at-the-end.'  <infile >outfile

可以在linux(ubuntu)上运行,不能在freebsd上运行。

相关问题