How to calculate a hash for a string (url) in bash for wget caching
Sounds like you want the md5sum system utility.
URLMD5=`/bin/echo $URL | /usr/bin/md5sum | /bin/cut -f1 -d" "`
If you want to only create the hash on the filename, you can get that quickly with sed:
FILENAME=`echo $URL | /bin/sed -e 's#.*/##'`URLMD5=`/bin/echo $FILENAME | /usr/bin/md5sum | /bin/cut -f1 -d" "`
Note that, depending on your distribution, the path to cut
may be /usr/bin/cut
.
I don't have the rep to comment on the answer, but there's one clarification to Epsilon Prime's answer: by default, echo will print a newline at the end of the text. If you want the md5 sums to match up with what will be generated by any other tool (eg php, Java's md5, etc) you need to call
echo -n "$url"
which will suppress the newline.
Other options on my Ubuntu (Precise) box:
echo -n $STRING | sha512sum
echo -n $STRING | sha256sum
echo -n $STRING | sha224sum
echo -n $STRING | sha384sum
echo -n $STRING | sha1sum
echo -n $STRING | shasum
Other options on my Mac:
echo -n $STRING | shasum -a 512
echo -n $STRING | shasum -a 256
- etc.