Ansatzの備忘録

勉強したことあるいはふと思い立ったこと

シェルワンライナー160本ノック問題109

問題109 中身が同じファイルの検索

ハッシュ値を使うとこんなことが出来るのかと感心した。

解答例は

 sudo find /etc -type f | sudo xargs md5sum | awk '{a[$1]=a[$1]" "$2}END{for(k in a){print k, a[k]}}' | awk 'NF>2'

となる。find をやるにもハッシュ値を作るにも権限が必要なのでそれぞれsudoをつけている。あとはawk連想配列を用いて同じハッシュ値をまとめている。そのあと列が3つ以上のものだけ出力する。