我想比较两个文件中的行,但为了尽量减少输出中的噪音,我只想打印行中的实际差异。
例如,给定以下两个文件:
一个.txt
a b c d e f g h i j k l m n o p q r s t u v w x y z
b.txt
a B c d e f g h i j k l m n o p q r s t u v w x y z
(它们之间的区别是字母的大小写b
)
我希望输出类似于:
[-b-]{+B+}
目前,我发现最好的方法是使用git diff --word-diff
,但它输出整行:
a [-b-]{+B+} c d e f g h i j k l m n o p q r s t u v w x y z
除了手动解析输出之外,还有更直接的方法吗?此外,理想情况下,我更喜欢使用比 更常用的东西git diff
,例如不需要用户安装额外包的 POSIX shell 工具。
使用wdiff:
-3
or---no-common
选项将删除两个文件之间共有的单词,只显示不同之处。===...
可以使用以下命令删除横幅(和空行)grep
:wdiff
diff
如果您给它-d
or选项,也可以读取统一数据--diff-input
,例如从git
:虽然
wdiff
不是 POSIX 工具,但它是常用的。