我有一个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)
答案 0 :(得分:2)
没有。当sed退出时,文件将被关闭。
这可能是权限问题。验证您的Windows用户是否具有该文件的写入权限。
如果它在Windows分区上,请尝试以管理员身份运行Notepad ++。如果它在Linux共享fs上,请尝试chmod
。
答案 1 :(得分:2)
不,sed不保持文件打开。脚本完成后,将关闭所有打开的文件。
尝试使用Process Explorer查找文件打开的进程。使用Ctrl-F查找附加到您遇到问题的文件的打开句柄。