既存プロジェクト内に含まれる類似実装を調査するために「全部のソースコードを連結して sort し、同一実装の出現数を uniq -c で数える」という方法を考えました。
しかしこれだとインデントの状態によって同一と数えることができなくなるので、インデントを外すスクリプトを書いてみました。
次の awk スクリプトを通すと、行の前後のスペースやタブ文字を消してコード部分だけを抽出できます。
#!/usr/bin/awk -f
match($0, /^[ \t]+?(.+?)[ \t]+?$/, matched) {
# print $0
print matched[1]
}