crc32sum - Calculate CRC32 for each file (Bash using 7z) - bugfix
crc32sum - Calculate CRC32 for each file (Bash using 7z) - bugfix

crc32sum - Calculate CRC32 for each file (Bash using 7z)

Hi all. This is an update on my script extracting CRC32 checksum from the 7z commandline tool. The output should be similar to how the md5sum tool outputs, the checksum and the file name/path.
The initial version of this script was actually broken. It would not output all files if a directory was included (wrong counting of files through argument number). Also filenames that contained a space would only output the first part until the space character. All of this rookie mistakes are solved. Plus there is a progress bar showing what files are processed at the moment, instead showing a blank screen until command is finished. This is useful if there are a lot of files or some big files to process.
Yes, I'm aware there are other ways to accomplish this task. I would be happy to see your solution too. And if you encounter a problem, please report.
(Note: Beehaw does not like the "less than" character and breaks the post completley. So replace the line cat %%EOF
with
#!/usr/bin/env bash if [[ "${#}" -eq 0 ]] || [[ "${1}" == '-h' ]]; then self="${0##*/}" cat %%EOF usage: ${self} files... Calculate CRC32 for each file. positional arguments: file or dir one or multiple file names or paths, if this is a directory then traverse it recursively to find all files EOF exit 0 fi 7z h -bsp2 -- "${@}" | \grep -v -E '^[ \t]+.*/' | \sed -n -e '/^-------- ------------- ------------$/,$p' | \sed '1d' | \grep --before-context "9999999" '^-------- ------------- ------------$' | \head -n -1 | \awk '$2=""; {print $0}'