Nim recursive duplicate file search.
I was wanting to spend some time with Nim programming language since it looks very similar to two of my favorite languages, Python being one. I am very impressed with it so far but I don’t really have anything to write at the moment and the kid keeps bugging me to paint his traffic light so why not something quick and easy? SHA is slow.
I will be using this language a lot so I’ll post more as I do more. I plan to tackle GUI stuff soon.
import os import std/sha1 import tables # Compile: Save as dupes.nim and # compile with: nim compile --opt:speed --run dupes.nim echo "Enter search path: " var searchPath: string = readLine(stdin) var hashTable = initTable[string, seq[string]]() for objPath in walkDirRec(searchPath, {pcFile}): var shaResult = $(secureHashFile(objPath)) if not hashTable.hasKey(shaResult): var matchSeq = newSeq[string]() hashTable[shaResult] = matchSeq hashTable[shaResult].add(objPath) # Roll through results and print to screen. for key, value in hashTable: echo key, " " ,value
And one of five lights sanded, cleaned, and painted.