在使用'sed'修改后需要closures文件吗?

我有一个shell脚本,其中包含一个sed命令,插入到现有的文件中:

 sed -i "/<test name=\"test-$NUMBER\">/i $NEW_TEST_SUITE" test.xml 

在运行这个shell脚本之后,我在Notepad ++中打开了文件test.xml ,并且确实在之前插入了一个新行:

 <test name="test-XXXX"> 

但是,当我试图做一个漂亮的打印(通过单击CTRL + ALT + SHIFT + B )并保存该文件,它popup一个警告说:

请检查此文件是否在另一个程序中打开

所以我想这可能是由于修改文件,而不是closures它造成的? 使用sed后需要closures文件吗? 如果是这样,你能告诉我什么命令是因为我在网上search,但没有发现任何关于这个? (我的平台是Windows 7)

不。当sed退出时,文件关闭。

这可能是一个权限问题。 验证您的Windows用户有写入权限的文件。

如果它位于Windows分区上,请尝试以管理员身份运行Notepad ++。 如果它在Linux共享的fs上,请尝试chmod

不,sed不保留文件。 脚本完成后,所有打开的文件将被关闭。

尝试使用Process Explorer来查找打开文件的过程。 使用Ctrl-F查找连接到您遇到问题的文件的打开的句柄。