如何在find的特定exec中使用管道(在bash中)

如何在find的特定exec中使用管道(在bash中),bash,find,exec,pipe,md5sum,Bash,Find,Exec,Pipe,Md5sum,我必须用shell命令的输出构建一个csv;csv文件必须为每一行包含一些通过stat命令输出获得的信息,并在最后一列中包含md5sum(仅包含不带文件名的sum) 我试过一些命令,比如: find . -exec stat --printf='"%a";"%F"' {} \; -exec sh -c "md5sum $1 | cut -b-32" {} {} \; 找到-exec stat--printf='%a';“%F”{}\-执行官sh-c“md5sum$1|cut-b-32”{}{};

我必须用shell命令的输出构建一个csv;csv文件必须为每一行包含一些通过stat命令输出获得的信息,并在最后一列中包含md5sum(仅包含不带文件名的sum)

我试过一些命令,比如:

find . -exec stat --printf='"%a";"%F"' {} \; -exec sh -c "md5sum $1 | cut -b-32" {} {} \; 找到-exec stat--printf='%a';“%F”{}\-执行官sh-c“md5sum$1|cut-b-32”{}{}; 但是,请阻止我并要求我提供输入

而这个,

find . -exec stat --printf='"%a";"%F";' {} \; -exec md5sum {} | cut -b-32 \; 找到-exec stat--printf='%a';“%F”;”{} \; -exec md5sum{}cut-b-32\; 但在这种情况下,管道不工作


我怎么解决呢?

我想你有
{}
放错位置。这一个在Linux上运行良好:

find . -exec stat --printf='"%a";"%F";' {} \; -exec sh -c "md5sum {} | cut -b-32" \;
更新1 您也可以将所有功能组合在一个
-exec
选项中,如下所示:

find . -exec sh -c "stat --printf='\"%a\";\"%F\";' {} && md5sum {} | cut -b-32" \;

输出是错误的:我必须只对md5sum进行剪切,您的代码对所有输出进行剪切实际上这是您自己的命令,我刚刚修复了语法:)但是很高兴知道实际意图,我将修改我的答案。