在管道后将 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
我试图在管道后将 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