たとえば、関数が完全に再構成されたソースコードファイルを考えてみましょう。行の順序を変更することが唯一の変更であることを確認できるコマンドはありますか?
(つまり、行が追加、削除、または変更されていないことを意味します)
答え1
簡単な答えは、「2つのファイルのソートされたバージョンを比較してください」です。
存在するbash
:
diff <(sort file1) <(sort file2)
明らかに、これは両方のファイルがプログラミング言語のソースファイルと同じ意味を持つことを意味するものではありません(両方とも構文的に正しいと仮定します)。
答え2
誰かがGNUバージョンを書いてほしいので、これに言及するだけです。
ブレンダS.ベーカー私はBell Labsのメンバーでした、次のプログラムを書いています。繰り返すこれはあなたが望むもの以上を行います。 dupを使用して2つのCシステムを比較し、いくつかの重複コード(コピーされた関数、名前が変更された変数、またはいくつかのマイナーな変更)を見つけることができます。
SCOの倫理的な人がLinuxソースコードを貴重なSCO「知的財産」と比較した場合、SCOg全体の失敗は避けられたでしょう。