for f in *.Xml
do
perl -pi.bak -e 's/\x03//g' "$f"
done
rm *.bak
我正在使用for循环,而我正在使用-pi.bak
。我仍然得到Can't do inplace edit on 20180619.Xml: File exists.
。我还从Windows的cmd.exe
而不是git bash尝试过此操作:
for %i in (*.Xml) do perl -pi.bak -e "s/\x03//g" "%i"
同一件事。有什么想法吗?
版本信息:
$ perl --version
This is perl 5, version 26, subversion 1 (v5.26.1) built for x86_64-msys-thread-multi
我正在使用Windows 10 Pro的最新版本。
答案 0 :(得分:3)
证明文件是由另一个进程打开(供读取)的。
$ handle 20180619.Xml
Nthandle v4.11 - Handle viewer
Copyright (C) 1997-2017 Mark Russinovich
Sysinternals - www.sysinternals.com
Rgui.exe pid: 11520 type: File 488: C:\20180619.Xml
Rgui.exe pid: 11520 type: File 530: C:\20180619.Xml
Rgui.exe pid: 11520 type: File 680: C:\20180619.Xml
杀死进程可以解决问题。