因此,针对两个文件,实用程序Diff的工作方式就像我想要的那样,但我有一个需要同时比较多个文件的项目,可能最多达到10个。这需要将所有这些文件彼此并排放置。我的研究并没有真正发现什么,vimdiff似乎是目前最好的,它可以同时比较4个文件。
我的问题是:是否有任何实用程序可以比较多于2个文件,或者有一种方式可以对Diff / vimdiff进行修改,使其可以进行多个比较? 我将要比较的文件相对较短,因此速度不应该太慢。
因此,针对两个文件,实用程序Diff的工作方式就像我想要的那样,但我有一个需要同时比较多个文件的项目,可能最多达到10个。这需要将所有这些文件彼此并排放置。我的研究并没有真正发现什么,vimdiff似乎是目前最好的,它可以同时比较4个文件。
我的问题是:是否有任何实用程序可以比较多于2个文件,或者有一种方式可以对Diff / vimdiff进行修改,使其可以进行多个比较? 我将要比较的文件相对较短,因此速度不应该太慢。
使用Diffuse可以轻松地将10个文件并排显示并突出显示差异。只需像这样在命令行中指定所有文件:
diffuse 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt 10.txt
Vim 已经可以做到这一点:
vim -d file1 file2 file3
但是通常情况下,你只能同时编辑4个文件。不过,你可以通过修改Vim源代码中的一行来改变这个限制。常量DB_COUNT
定义了最大的差异文件数,在6.x版本及更早版本中,它被定义在diff.c
文件的顶部左右;而在7.0及更高版本中,它被定义在structs.h
文件的大约2/3处。
diff
内置选项--from-file
和--to-file
,用于将一个操作数与所有其他操作数进行比较。
--from-file=FILE1
Compare FILE1 to all operands. FILE1 can be a directory.
--to-file=FILE2
Compare all operands to FILE2. FILE2 can be a directory.
注意:参数名称 --to-file
是可选的。
例如:
# this will compare foo with bar, then foo with baz .html files
$ diff --from-file foo.html bar.html baz.html
# this will compare src/base-main.js with all .js files in git repo,
# that has 'main' in their filename or path
$ git ls-files :/*main*.js | xargs diff -u --from-file src/base-main.js
查看 "Beyond Compare": http://www.scootersoftware.com/
它可以让你比较整个文件夹,而且似乎也可以在Linux上运行。
虽然没有回答主要问题,但这里有一个类似于Benjamin Neil所建议的但是对所有文件进行差异比较的方法:
将文件名存储在数组中,然后循环遍历大小为二的组合并进行差异比较(或者进行任何你想要的操作)。
files=($(ls -d /path/of/files/some-prefix.*)) # Array of files to compare
max=${#files[@]} # Take the length of that array
for ((idxA=0; idxA<max; idxA++)); do # iterate idxA from 0 to length
for ((idxB=idxA + 1; idxB<max; idxB++)); do # iterate idxB + 1 from idxA to length
echo "A: ${files[$idxA]}; B: ${files[$idxB]}" # Do whatever you're here for.
done
done
源自@charles-duffy的回答:https://stackoverflow.com/a/46719215/1160428
max=${#files[@]}
echo "from;to;cnt" > multi_diff_cnt.csv
for ((idxA=0; idxA> multi_diff_cnt.csv
done
done```
在这种情况下,对我很有效。
- Sanek Zhitnik有一种简单而好的方法可以做到这一点 = GREP。
根据文本的大小,您可以复制并粘贴它,或者您可以将文件输入重定向到grep命令。如果您进行grep -vir /path以进行反向搜索或grep -ir /path。这是我参加认证考试的方式。
grep
不是 diff
;如何使用 grep
比较文件? - reinierpost
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display
- rogerdpack