如何将unix diff命令的结果左右绘制而不是一个差异?请参阅下面的示例:
diff /tmp/test1 /tmp/test2
1,4c1,2
< asfdsadf
< asdfsad
< fsaf
< fdsadf
---
> asdfsafdsf
> saf
6,8d3
< sadf
< asdf
< sadf
10d4
< fasd
12,13c6,14
< sadfa
< fd
---
> sadf
> sadf
> sadf
> sadf
> sadf
> sadf
> sadf
> sadf
> safa
我希望有类似的东西:
diff /tmp/test1 /tmp/test2
1,4c1,2
< asfdsadf > asdfsafdsf
< asdfsad > saf
< fsaf
< fdsadf
---
6,8d3
< sadf
< asdf
< sadf
10d4
< fasd
12,13c6,14
< sadfa > sadf
< fd > sadf
--- > sadf
> sadf
> sadf
> sadf
> sadf
> sadf
> safa
答案 0 :(得分:127)
从man diff
开始,您可以使用-y
并排进行。
-y, --side-by-side
output in two columns
因此,请说:
diff -y /tmp/test1 /tmp/test2
$ cat a $ cat b
hello hello
my name my name
is me is you
让我们比较一下:
$ diff -y a b
hello hello
my name my name
is me | is you
答案 1 :(得分:28)
来自icdiff&#39; homepage:
您的终端可以显示颜色,但大多数差异工具都没有充分利用它。通过突出显示更改,icdiff可以显示类似文件之间的差异而不会妨碍。这对于识别和理解现有线路中的小变化特别有用。
icdiff的目标不是试图成为所有情况下的差异替代品,而是成为一种工具,可以更好地了解在差异不明显的情况下所发生的变化。
恕我直言,它的输出比diff -y
更具可读性。
答案 2 :(得分:9)
您应该sdiff
并排合并文件差异。阅读man sdiff
阅读完整的故事。
答案 3 :(得分:9)
您可以使用:
sdiff file1 file2
或
diff -y file1 file2
或
vimdiff file1 file2
并排显示。
答案 4 :(得分:6)
您可以简单地使用:
function install_load_profile(&$install_state) {
$profile_file = DRUPAL_ROOT . '/profiles/' . $install_state ['parameters']['profile'] . '/' . $install_state ['parameters']['profile'] . '.profile';
if (file_exists($profile_file)) {
// ...
}
else {
throw new Exception(st('Sorry, the profile you have chosen cannot be loaded.'));
}
}
它显示分割为两个列并且着色的输出! (diff -y fileA.txt fileB.txt | colordiff
)
答案 5 :(得分:4)
使用-y
选项:
diff -y file1 file2
答案 6 :(得分:4)
尝试cdiff - 查看工作区中的彩色增量差异或并排显示stdin和自动寻呼机支持。
答案 7 :(得分:4)
import Foundation
import StoreKit
class SpsRateManager {
private static let instance = SpsRateManager()
var shareinstance: SpsRateManager{
return .instance
}
static func incrementAppOpenedCount() { // called from appdelegate didfinishLaunchingWithOptions:
let userdefault = UserDefaults.standard
let savedvalue = userdefault.integer(forKey: Configuration.APPLICATIONOPENCOUNTSTATUS)
if savedvalue == 0 {
print("Not saved ")
userdefault.set(1, forKey: Configuration.APPLICATIONOPENCOUNTSTATUS)
}
else{
userdefault.set(savedvalue+1, forKey: Configuration.APPLICATIONOPENCOUNTSTATUS)
}
}
static func checkAppopencountandProvideReview(){
let userdefault = UserDefaults.standard
let appopencountvalue = userdefault.integer(forKey: Configuration.APPLICATIONOPENCOUNTSTATUS)
if appopencountvalue % 10 == 0 {
print("its been 10 times so ask for review ")
SpsRateManager().requestReview()
}
else{
print("not enough open count dont show ")
}
}
fileprivate func requestReview() {
if #available(iOS 10.3, *) {
SKStoreReviewController.requestReview()
} else {
// Fallback on earlier versions
// Try any other 3rd party or manual method here.
}
}
答案 8 :(得分:3)
您可以使用vimdiff
。
示例:
vimdiff file1 file2
答案 9 :(得分:2)
如果您的文件使用空格和制表符不一致,您可能会发现包含-t
参数以展开标签会很有帮助:
diff -ty file1 file2
答案 10 :(得分:0)
带有颜色,并排和别名的增强的diff命令
假设文件内容如下:
cat /tmp/test1.txt
1
2
3
4
5
8
9
和
cat /tmp/test2.txt
1
1.5
2
4
5
6
7
现在并排比较
diff --width=$COLUMNS --suppress-common-lines --side-by-side --color=always /tmp/test1.txt /tmp/test2.txt
> 1.5
3 <
8 | 6
9 | 7
您可以定义要使用的别名
alias diff='diff --width=$COLUMNS --suppress-common-lines --side-by-side --color=always'
然后是新的差异结果:
diff /tmp/test1.txt /tmp/test2.txt
> 1.5
3 <
8 | 6
9 | 7