有没有办法在" gnu parallel"中实现相同的目标。嵌套引用较少?

时间:2016-03-10 14:53:46

标签: sh gnu-parallel

虽然这个脚本有效,但我对嵌套引用过多感到不满,这使得脚本非常脆弱且难以修改。 该脚本基本上由parallel表示,后跟一个filter参数,后跟命令参数。

#!/bin/sh
uhrzeit_0=$(date --rfc-3339=ns) ; uhrzeit="$uhrzeit_0 $(echo "$uhrzeit_0" | sha512sum)"   ;
find ./* -maxdepth 30 -type f -print0 | parallel --null  \
"mimetype --output-format %m {} | grep video > /dev/null \
&&  echo -en '\nSeparator: ' && echo -e $uhrzeit \
&& echo -n 'md5sum: ' && md5sum {} && echo -n 'du -h: ' \
&& du -h {} && ffmpeg -loglevel quiet -i {} -f ffmetadata - " > Film_metadata.txt

1 个答案:

答案 0 :(得分:2)

#!/bin/bash
uhrzeit_0=$(date --rfc-3339=ns)
uhrzeit="$uhrzeit_0 $(echo "$uhrzeit_0" | sha512sum)"

doit() {
  F="$1"
  mimetype --output-format %m "$F" | grep video > /dev/null &&
    echo -en '\nSeparator: ' &&
    echo -e $uhrzeit &&
    echo -n 'md5sum: ' &&
    md5sum "$F" &&
    echo -n 'du -h: ' &&
    du -h "$F" &&
    ffmpeg -loglevel quiet -i "$F" -f ffmetadata -
}
export -f doit

find ./* -maxdepth 30 -type f -print0 |
  parallel --null doit > Film_metadata.txt