我尝试递归地比较两个结构相同的目录(解压缩的excel文件中的XML文档),如果有任何文件不同,则使用相应文件中的文本覆盖第一个文件中的文本。第二个目录。在Unix命令行中,您可以使用以下命令轻松输出将对两个文件执行此操作的脚本:
diff -e file1.xml file2.xml > edscript.txt
然后我可以用:
调用脚本echo "w" >> edscript.txt
ed - file1.txt < edscript.txt
但是,我使用Git Bash Windows 7,并且没有&#34; ed&#34;程序已安装。是否有可以输出脚本并执行的等效项?如果没有,有没有办法在git bash上安装ed?我已经尝试过sudo apt-get install ed但这些命令似乎不太可能。我的最终目标是使用python和子进程库
运行此脚本欢迎提出任何意见或建议。谢谢!
答案 0 :(得分:0)
答案 1 :(得分:0)
如果您已经安装了git bash,请检查其bin文件夹。应该有一个你可以直接调用的diff.exe。
对我来说,那是Private Sub DoSomething()
On Error GoTo CleanFail
'...code...
CleanExit:
'cleanup code here
Exit Sub
CleanFail:
If Err.Number = 9 Then 'subscript out of range
Err.Clear
Resume Next
Else
MsgBox Err.Description
Resume CleanExit
End If
End Sub
(这可能比尝试在Windows上从python调用类似* nix的shell更容易,然后在该命令行上运行diff)
编辑:从python执行此操作,假设前面提到的diff.exe路径:
C:\Program Files (x86)\Git\bin\diff.exe
答案 2 :(得分:0)
GNU工具http://gnuwin32.sourceforge.net/packages/diffutils.htm
同样来自cmd.exe
comp
命令,请尝试使用help comp
参数。
编辑:你有这个问题的python标签,你有python可用吗?如果是,请查看标准库中的filecmp
模块:https://docs.python.org/3/library/filecmp.html