0

我正在尝试将管道的输出awk传递给管道。扩展属性的值是一个 MD5 哈希值,它是根据命令输出的输入文件计算得出的。这是我到目前为止所拥有的:print $1print $2setfattrfind

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 " $1 $2)}'

在最后一个管道分别返回哈希awk '{print $1}'$2文件路径之后,我只是不确定如何将这些值放入setfattr. setfattr运行该命令时只会引发一般使用错误。这只是一个语法问题还是我完全错了?

4

1 回答 1

1

尝试将并行命令的输出通过管道传输到 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
于 2019-10-17T21:31:51.417 回答