The trick is to put the canonical uri's into files and then run md5sum on the files. First, since we need to create lots of tiny temporary files create a tmpfs so the files will be created in a memory file system - no I/O to a real device (mount -t tmpfs .... /mnt/xxx). readlink's output should be redirected into into files uri0, uri1, uri2, uri3, .... Then do md5sum uri*.
Sorry, about the late response, I live in Hawaii but I am a total nighthawk - I sleep during the day and work at night 7:00PM HST to 9:00AM HST.
My two cents: I think it is better to be very good at a few tools than mediocre at many tools. I think Python should definitely be one of those tools. I don't know Python at all except by reputation and Python's reputation is excellent. Currently, I believe most developer tools are now written in Python. Of course the choice of tools depends on the field you are working in. My field is WordPress so my tool is PHP. I have become very proficient at PHP so I think I can do most sysadmin tasks in PHP although PHP is not usually used for this. However, unless you will be doing web development I would not recommend PHP. Because it was organically developed, it is a very quirky (i.e., ugly) language. (It hurts me deeply to say that because PHP is my language.) Contrast that with Python which was developed under the strict guidance of G. van Rossum. The other tool I think is very valuable (again only by reputation) is Rust. Apparently, Rust is not just another programming language but introduces new paradigms for concurrency. So, if I were younger and my field was not web development but system programming, Python and Rust would be the languages I would be interested in.