3

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

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

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

<test name="test-XXXX"> 

但是,当我尝试进行漂亮的打印(通过单击CTRL+ ALT+ SHIFT+ B)并保存该文件时,它会弹出一个警告说:

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

所以我在想这可能是由于修改文件而不关闭文件造成的吗?使用后需要关闭文件sed吗?如果是这样,你能告诉我命令是什么,因为我已经在网上搜索但没有找到任何关于此的内容?(我的平台是 Windows 7)

4

2 回答 2

2

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

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

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

于 2013-06-13T22:11:29.927 回答
2

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

尝试使用进程资源管理器查找打开文件的进程。使用 Ctrl-F 查找附加到您遇到问题的文件的打开句柄。

于 2013-06-13T22:12:50.457 回答