sed 在文件末尾添加行
sed add line at the end of file
我试图用 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 不行,还有其他选择吗?
谢谢!
听起来你根本不需要使用 sed,也许 cat
和 heredoc:
cat >>test.conf <<EOF
whatever you want here
more stuff
EOF
>>
在 "append" 模式下打开 test.conf
,因此行被添加到文件的底部,而 <<EOF
是一个允许您通过的 heredoc通过标准输入到 cat 的行。
要在交互式终端中添加文字选项卡,您可以使用 Ctrl-v 然后使用 Tab.
您不需要像 sed 这样的特殊工具来向文件末尾添加一些行。
$ echo "This is last line" >>file
#or
$ printf "This is last line\n" >>file
几乎在任何平台上都能正常工作。不过,您可能需要转义特殊字符,或将它们括在 single/double 引号中。
我试图用 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 不行,还有其他选择吗?
谢谢!
听起来你根本不需要使用 sed,也许 cat
和 heredoc:
cat >>test.conf <<EOF
whatever you want here
more stuff
EOF
>>
在 "append" 模式下打开 test.conf
,因此行被添加到文件的底部,而 <<EOF
是一个允许您通过的 heredoc通过标准输入到 cat 的行。
要在交互式终端中添加文字选项卡,您可以使用 Ctrl-v 然后使用 Tab.
您不需要像 sed 这样的特殊工具来向文件末尾添加一些行。
$ echo "This is last line" >>file
#or
$ printf "This is last line\n" >>file
几乎在任何平台上都能正常工作。不过,您可能需要转义特殊字符,或将它们括在 single/double 引号中。