我有一个在vimscript中制作的程序,该程序检查两个文件是否相同。它对diff进行系统调用以验证它们是否不同。

我在Tcl中需要类似的东西,但不求助于外部命令或系统调用。我不需要知道文件之间的差异或进行比较,只要两个文件的内容相同就返回1,如果内容不同就返回0。

最佳答案

proc comp_file {file1 file2} {
    # optimization: check file size first
    set equal 0
    if {[file size $file1] == [file size $file2]} {
        set fh1 [open $file1 r]
        set fh2 [open $file2 r]
        set equal [string equal [read $fh1] [read $fh2]]
        close $fh1
        close $fh2
    }
    return $equal
}

if {[comp_file /tmp/foo /tmp/bar]} {
    puts "files are equal"
}

关于tcl - Tcl:检查两个文件之间的相同内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29289360/

10-13 07:42