使用'sed'修改后是否需要关闭文件?

时间:2013-06-13 22:02:04

标签: windows bash shell

我有一个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 )并保存该文件,它弹出一个警告说:

  

请检查此文件是否在其他程序中打开

所以我认为可能是因为修改文件而没有关闭它?使用sed后是否需要关闭文件?如果是这样,你能告诉我这个命令是什么,因为我在网上搜索但是没有找到任何关于这个的信息吗? (我的平台是Windows 7)

2 个答案:

答案 0 :(得分:2)

没有。当sed退出时,文件将被关闭。

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

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

答案 1 :(得分:2)

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

尝试使用Process Explorer查找文件打开的进程。使用Ctrl-F查找附加到您遇到问题的文件的打开句柄。