Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 具有ed输出的unix diff命令的Windows等效程序_Python_Unix_Command Line_Diff_Windows 7 X64 - Fatal编程技术网

Python 具有ed输出的unix diff命令的Windows等效程序

Python 具有ed输出的unix diff命令的Windows等效程序,python,unix,command-line,diff,windows-7-x64,Python,Unix,Command Line,Diff,Windows 7 X64,我试图递归地比较两个结构等效的目录(解压缩excel文件中的XML文档),如果有任何文件不同,则使用第二个目录中相应文件的文本覆盖第一个文件中的文本。在Unix命令行中,您可以使用以下命令轻松输出一个脚本,该脚本将对两个文件执行此操作: diff -e file1.xml file2.xml > edscript.txt 然后,我可以使用以下命令调用脚本: echo "w" >> edscript.txt ed - file1.txt < edscript.txt e

我试图递归地比较两个结构等效的目录(解压缩excel文件中的XML文档),如果有任何文件不同,则使用第二个目录中相应文件的文本覆盖第一个文件中的文本。在Unix命令行中,您可以使用以下命令轻松输出一个脚本,该脚本将对两个文件执行此操作:

diff -e file1.xml file2.xml > edscript.txt
然后,我可以使用以下命令调用脚本:

echo "w" >> edscript.txt
ed - file1.txt < edscript.txt
echo“w”>>edscript.txt
ed-file1.txt
但是,我使用的是Git Bash Windows 7,并且没有安装“ed”程序。是否有可以输出脚本并执行的等效程序?如果没有,有没有办法在git bash上安装ed?我已经尝试过sudo-apt-get-install-ed,但是这些命令似乎不可能实现。我的最终目标是使用python和子流程库来运行这些脚本


欢迎任何意见或建议。谢谢 对我来说,这就是
C:\ProgramFiles(x86)\Git\bin\diff.exe

(这可能比在windows上尝试从python调用类似*nix的shell,然后在该命令行上运行diff更容易)

编辑:从python执行此操作,假设前面提到的diff.exe路径:

In [40]: import subprocess
In [41]: subprocess.call(["c:/program files (x86)/git/bin/diff.exe", "-e", "c:/users/a.p/empty.py", "c:/users/a.p/.bashrc"])
alias l='ls -a'
alias ll='ls -la'
alias ipy='ipython'
.
Out[41]: 1
GNU工具

同样从
cmd.exe
comp
命令中,尝试
help comp
获取参数

编辑:你在这个问题上有python标签,你有可用的python吗?如果是,请查看标准库中的
filecmp
模块:


示例:

非常感谢!尽管我很难打电话给它。当我想要运行它时,我是否必须将CD放入该目录(这意味着我必须为我想要比较的文件键入完整的文件路径),或者当我与我想要比较的文件位于同一目录时,我是否可以使用您提供的文件路径调用diff?后者是我现在正在做的,但它似乎不认识这条路。我需要做一些花哨的间隔,还是我的第一个建议是唯一的选择?@NoahMendoza你能编辑你的问题或发布你现在正在做的事情吗?我不想猜测细节和做出错误的假设。现在我只想做:“diff-e file1.txt file2.txt>edscript.txt”,然后调用脚本“ed-file1.txted,请访问-任何与之相关的问题都可能值得他们提出自己的问题。好的,非常感谢。这至少足以获得一些动力。我很感激!谢谢,我现在正在看这两本书。可能有用!是的,我已经试过了,但我要寻找的是能够编写一个可以执行的脚本,就像我最初发布的diff命令一样。comp和fc都没有这个函数。@NoahMendoza:添加了一个关于python
filecmp
的编辑,你能在上面找到什么吗?@WalterA有一些有用的东西,但我想要的是输出一个脚本,然后以某种方式执行,因此,所有工作的最终结果是file1现在与file2完全相同。当您需要更多的file2到file1的纯拷贝时,您可以尝试低级差异,或者尝试使用一些python库解释xml,并比较结果结构。我仍然没有达到最终的目标,我猜你想要的是或。