Hi,
I figured it out myself (from some stackoverflow "FILE_BASENAME"-post)
(but was gaming and didn't come to the `column` part yet), but thanks
for `parallel` and reply :)
func() {
FILENAME=$1
# FILE_BASENAME=`echo ${FILENAME##*/}`
# echo $FILE_BASENAME
URL=$(ffprobe -hide_banner "$FILENAME" 2>&1| grep -i 'http\|www')
if [ "$URL" != "" ]; then
echo -e "$FILENAME\t$URL"
fi
}
export -f func
#time parallel func :::: ~/filelist|wc -l
time find . -type f -iname "*.flac" -print0|parallel -0 func
Initially I didn't like to see a function and additional export line,
but I'm fine with it now as it tidies things up and helps understanding.
On 12.11.22 um 16:53 Ole Tange wrote:
On Sat, Nov 12, 2022 at 2:55 PM D <[email protected]> wrote:
Hello,
I'm trying to parallelize my Bash shell script:
find . -type f -iname "*.flac" -print0 | while read -d $'\0' FILENAME; do
INFOS=$(ffprobe -hide_banner "$FILENAME" 2>&1)
URL=$("$INFOS"|& grep -i 'http\|www')
if [ "$URL" != "" ]; then
echo -e "$FILENAME\t$URL"
fi
done | column -t -s $'\t'
doit() {
FILENAME="$1"
INFOS=$(ffprobe -hide_banner "$FILENAME" 2>&1)
URL=$("$INFOS"|& grep -i 'http\|www')
if [ "$URL" != "" ]; then
echo -e "$FILENAME\t$URL"
fi
}
export -f doit
find . -type f -iname "*.flac" -print0 | parallel doit |
column -t -s $'\t'
I think you have misunderstood how GNU Parallel works.
You should spend 20 minutes reading chapter 1+2:
https://doi.org/10.5281/zenodo.1146014 (Print:
https://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html)
/Ole