如何在查找的特定执行中使用管道(在bash中)

时间:2011-05-10 16:28:20

标签: bash find exec pipe md5sum

我必须使用shell命令的输出构造一个csv; csv文件必须为每一行包含一些信息,这些信息由stat命令的输出得到,在最后一列中包含md5sum(只有没有文件名的总和)

我尝试了一些命令:

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

但是这个阻止并向我询问输入

这个,

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

但在这种情况下管道不起作用。

我该如何解决?

1 个答案:

答案 0 :(得分:3)

我认为您{};放错地方了。这个在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" \;