运行 Fedora 25 服务器版。sed --version给了我sed (GNU sed) 4.2.2通常的版权和联系信息。我创建了一个文本文件sudo vi ./potential_sed_bug。Vi 将这个文件的内容(:set list启用)显示为:
don't$
delete$
me$
please$
然后我运行以下命令:
sudo sed -n -i.bak /please/a\testing ./potential_sed_bug
在我们讨论结果之前;这是sed 手册页的内容:
-n, --quiet, --silent 禁止自动打印模式空间
和
-i[SUFFIX], --in-place[=SUFFIX] 就地编辑文件(如果提供扩展名,则进行备份)。默认操作模式是断开符号链接和硬链接。这可以通过 --follow-symlinks 和 --copy 进行更改。
我还查看了其他 sed 命令参考以了解如何附加 sed。根据我对我所做研究的理解;生成的文件内容应为:
don't
delete
me
please
testing
但是,运行sudo cat ./potential_sed_bug会给我以下输出:
testing
鉴于这种差异,我对我运行的命令的理解是否不正确,或者 sed/环境是否存在错误?