如何在find的特定exec中使用管道(在bash中)
我必须用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\; 但在这种情况下,管道不工作如何在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”{}{};
我怎么解决呢?我想你有
{}
和代码>放错位置。这一个在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进行剪切,您的代码对所有输出进行剪切实际上这是您自己的命令,我刚刚修复了语法:)但是很高兴知道实际意图,我将修改我的答案。