技术解析

sed 将文件中的最后一行之后加上一句话
0
2021-07-15 13:39:40
idczone
sed -i "/$/a somewords“ file
可以在第段之后加上一句话,我想在文件中的最末尾加上一句话,并且是要换行再加上。
请问如何操作?

大家可以参考这个:
http://stackoverflow.com/questions/21195825/add-a-period-at-end-of-paragraph
为什么不直接用echo 和 >> 追加在file后面呢。
echo -e '\nendline' >> test.txt

哈哈因为他没想起来

说得好有道理…我刚刚还在想 awk …

sed -i "$a\nsomewords
" file
为什么不用 echo >> 哈哈哈

上面有问题,得用单引号!!$ 会被 bash 吃掉

没用echo是因为不想在控制台显示。文件也不一定存在,这是脚本中的一句,我测试的时候使用echo否符合我想要的结果。
sed -i "\$aTEXTAPPEND” file 解决。

echo为什么会在控制台显示?
什么文件不一定存在?

echo 是显示到屏幕, 不是吗,有个sed可以解决,为什么一定要用echo. 这些功能是在一个脚本中的,这个脚本的功能需要这样做。

echo 缺省到 stdout ,用 >> 可以 redirect ,参见 http://sc.tamu.edu/help/general/unix/redirection.html
这种情况使用 echo 比较常见。

你完全说错了
1. echo只是把参数输送给1号文件描述符。如果你没有设定重定向,那么1号FD是指向STDOUT,然后是指向屏幕设备。如果设了重定向,那么1号FD就是你指定的文件了。
2. 应该说echo就能解决的问题,为什么要动用sed?前者是文件内容追加,后者是正则表达式匹配替换。

我用这是想改动现有文件,文件不一定存在。
你说的对,是能用这实现,我有些也是用这实现的。

[ -e filename ] && echo 'balabalab' >> filename

awk 并不麻烦 awk '7;END{print "foo"}' file

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服