Diff

如何確定文件是否只是另一個文件的排列?

  • December 9, 2015

例如,考慮一個原始碼文件,其中的功能被徹底洗牌。是否有命令檢查行的重新排序是否是唯一的變化?

(這意味著沒有添加、刪除或更改行)

簡單的答案是:“比較兩個文件的排序版本”。

bash

diff <(sort file1) <(sort file2)

顯然,這並不意味著這兩個文件與程式語言的源文件具有相同的語義(假設兩者在語法上都是正確的)。

我提到這個只是因為我希望有人寫一個 GNU 版本……

前貝爾實驗室的Brenda S. Baker編寫了一個名為dup的系統,它可以完成您想做的事情以及更多工作。您可以使用 dup 比較兩個 C 語言系統,並找到類似重複的程式碼:複製的函式和重命名的變數或一些這樣的小改動。

如果 SCO 的一個有道德的人將 Linux 原始碼比作珍貴的 SCO“智慧財產權”,整個 SCOg 慘敗是可以避免的。

引用自:https://unix.stackexchange.com/questions/21108