在管道后将 awk 结果传递给命令

Passing awk results to command after pipe

我试图在管道后将 print print awk 输出传递给 setfattr。扩展属性的值是一个 MD5 哈希值,它是根据 find 命令的输出从输入文件计算得出的。这是我目前所拥有的:

find /path/to/dir -type f \
  -regextype posix-extended \
  -not -iregex '.*\.(jpg|docx|psd|jpeg|png|html|bmp|gif|txt|pdf|mp3|bts|srt)' \
| parallel -j 64 md5sum | awk '{system("setfattr -n user.digest.md5 -v "  )}'

在最后一个管道 returns 之后分别有 awk '{print }'</code> 散列和文件路径就好了,我只是不确定如何将这些值放入 <code>setfattr. setfattr 只是在该命令为 运行 时抛出一般使用错误。这只是一个语法问题还是我完全错了?

尝试将并行命令的输出输送到 while 循环中:

find /path/to/dir -type f \
    -regextype posix-extended \
    -not -iregex '.*\.(jpg|docx|psd|jpeg|png|html|bmp|gif|txt|pdf|mp3|bts|srt)' |
  parallel -j 64 md5sum |
  while read hash file; do
    setfattr -n user.digest.md5 -v ${hash} ${file}
  done