我有一个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查找连接到您遇到问题的文件的打开的句柄。