我正在使用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 | 2018年12月25日15:23:28 | ./CQIE8846.JPG
4f47d55c974f554ec060bd9c2cd54959
54150 | 2019年1月18日17:20:08 | ./Q_try.JPG
但是我希望每个文件仅显示一行(找到的2个文件仅显示2行):
31408eeb2c34d62638b810e7687d622d | 269261 | 2018年12月25日15:23:28 | ./CQIE8846.JPG
4f47d55c974f554ec060bd9c2cd54959 | 54150 | 2019年1月18日17:20:08 | ./Q_try.JPG
我尝试了其他命令行:
案例1)
find . ! -empty -type f -exec stat -f "`md5 -q {}`|%z|%SB|%N" {} \;
但是md5命令执行失败,终端输出如下:
md5:{}:没有这样的文件或目录
| 269261 | 2018年12月25日15:23:28 | ./CQIE8846.JPG
| 54150 | 2019年1月18日17:20:08 | ./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
有什么方法可以通过一个命令来实现吗?如果没有,如何用简单的脚本编写期望输出?