Я использую терминал Mac OS. Я хочу напечатать информацию о моих файлах в этом формате в некоторых каталогах:
md5 content|bytes size|modification date|file name
И для вывода этого списка файлов нужны 3 команды: find, stat и md5 (соответствующая команда linux md5sum)
Я пытался использовать эту команду:
find . ! -empty -type f -exec sh -c "md5 -q '{}' && stat -f '|%z|%SB|%N' '{}'" \;
, который может выводить результат, как это, на самом деле это то, что я хочу:
31408eeb2c34d62638b810e7687d622d
269261 | 25 декабря 15:23:28 2018 | ./CQIE8846.JPG
4f47d55c974f554ec060bd9c2cd54959
54150 | 18 января, 17:20:08 2019 | ./Q_try.JPG
но я хочу, чтобы каждый файл отображался только в одной строке (2 найденных файла показывают только 2 строки):
31408eeb2c34d62638b810e7687d622d | 269261 | Дек 25 15:23:28 2018 | ./CQIE8846.JPG
4f47d55c974f554ec060bd9c2cd54959 | 54150 | 18 января 17:20:08 2019 | ./Q_try.JPG
Я пробовал другие командные строки:
кейс 1)
find . ! -empty -type f -exec stat -f "`md5 -q {}`|%z|%SB|%N" {} \;
Но команда md5 не выполняется, вывод терминала выглядит следующим образом:
md5: {}: нет такого файла или каталога
| 269261 | 25 декабря 15:23:28 2018 | ./CQIE8846.JPG
| 54150 | 18 января, 17:20:08 2019 | ./Q_try.JPG
кейс 2)
find . ! -empty -type f -exec stat -f '`md5 -q {}`|%z|%B|%N' {} \;
не в состоянии интерпретировать команды md5, вывод такой как
`md5 -q ./CQIE8846.JPG`|269261|1545722608|./CQIE8846.JPG
`md5 -q ./Q_try.JPG`|54150|1547803208|./Q_try.JPG
Есть ли способ достичь этого с помощью одной команды? Если нет, то как написать ожидаемый результат простым скриптом?