如何在查找的特定执行中使用管道(在 bash 中)
我必须使用 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 \;
但是在这种情况下,管道不起作用。
我该如何解决?
I have to construct a csv with the output of a shell command; the csv file must contain for each row some information get by the output of stat command and in the last column the md5sum (only the sum without the filename)
I tried some command like:
find . -exec stat --printf='"%a";"%F"' {} \; -exec sh -c "md5sum $1 | cut -b-32" {} {} \;
but this block and ask me for input
and this,
find . -exec stat --printf='"%a";"%F";' {} \; -exec md5sum {} | cut -b-32 \;
but in this case the pipe doesn't work.
How can I solve it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为您把
{}
和;
放错了地方。这个在 Linux 上对我来说工作得很好:更新 1
您也可以将所有内容组合在一个
-exec
选项中,如下所示:I think you have
{}
and;
misplaced. This one is working fine for me on Linux:Update 1
You can combine all in one
-exec
option like this also: