md5sum
(по крайней мере, версия в GNU coreutils) не предоставляет опции для управления форматом вывода. Вам следует изменить скрипт awk, чтобы символы 0 ... 15 обрабатывались как md5sum, а символы 18 до конца строки - как имя файла. Если вам действительно нужен конкретный формат, вы должны проанализировать вывод md5sum
. Например:
user@host:~$ md5sum "/dev/null" | python -c 'import sys; s = sys.stdin.read(); print s[0:32] + "|" + s[34:],'
d41d8cd98f00b204e9800998ecf8427e|/dev/null
Кроме того, вы должны заключать аргумент в md5sum
в кавычки (md5sum "$i"
). Как написано, сценарий не будет работать, если есть какие-либо имена файлов, содержащие пробелы или специальные символы.