GNU Parallel behandelt Eingaben als ein einziges Argument und zitiert es, sodass Sie Dateinamen wie folgt verwenden können:
My brother's 12" records costs 30$ each.txt
In Ihrem Fall möchten Sie, dass das Argument von der Shell analysiert wird, sodass die Leerzeichen nicht in Anführungszeichen gesetzt werden:
parallel -a test_parallel eval compare {}
Oder du kannst dich vom Weltall trennen:
parallel --colsep ' ' -a test_parallel compare
Aber da Sie alles und alles miteinander vergleichen wollen, können Sie es viel eleganter machen:
parallel cmp -o ../out/cmp.. ::: Input* ::: Input*
Dadurch werden alle Eingaben * mit allen Eingaben * verglichen. Mit --results
können Sie die Ausgaben schön strukturiert in einem Verzeichnis erhalten:
parallel --results out/ cmp ::: Input* ::: Input*
Wenn Sie jedoch das Laufen cmp InputY InputX
nach dem Laufen überspringen möchten, cmd InputX InputY
können Sie Folgendes tun:
parallel --results out/ cmp {=1' $arg[1] ge $arg[2] and $job->skip();' =} ::: Input* ::: Input*