That can have disastrous consequences if the filename happens to have valid hex characters in it - because xxd will also decode that and pass it to base64. The pipe-through- awk step is necessary because shasum will pass the hashed filename in its output to xxd.The pipe-through- xxd step takes the hexadecimal output from shasum and converts it to binary.