uso por pasar parametros parameter linea compilar comandos bash file-processing gnu-parallel

bash - parameter - pasar parametros por linea de comandos java



División de args de línea de comando con GNU paralelo (3)

En el manual de Parallel, se dice:

Si no se da ningún comando, se ejecuta la línea de entrada ... GNU paralelo a menudo se puede usar como sustituto de xargs o cat | intento.

Así que pruebe:

generate command | parallel

Trata de entender el resultado de esto:

for i in {1..5};do echo "echo $i";done | parallel

Usando el GNU parallel : http://www.gnu.org/software/parallel/

Tengo un programa que toma dos argumentos, por ejemplo

$ ./prog file1 file2 $ ./prog file2 file3 ... $ ./prog file23456 file23457

Estoy usando un script que genera los pares de nombre de archivo, sin embargo, esto plantea un problema porque el resultado del script es una sola cadena, no un par. me gusta:

$ ./prog "file1 file2"

GNU parallel parece tener una serie de trucos bajo la manga, me pregunto si hay uno para dividir texto alrededor de separadores:

$ generate_file_pairs | parallel ./prog ? # where ? is text under consideration, like "file1 file2"

El trabajo más fácil es dividir los argumentos manualmente en prog, pero me gustaría saber si es posible en GNU parallel .


Está buscando -n opción de paralelo. Esto es lo que estás buscando:

./generate_file_pairs | parallel -n 2 ./prog {}

Extracto de GNU Parallel Doc :

-n max-args Use at most max-args arguments per command line. Fewer than max-args arguments will be used if the size (see the -s option) is exceeded, unless the -x option is given, in which case GNU parallel will exit.


Probablemente estés buscando --colsep .

generate_file_pairs | parallel --colsep '' '' ./prog {1} {2}

Lea man parallel para más. Y mira el video de introducción si aún no lo has hecho http://www.youtube.com/watch?v=OpaiGYxkSuQ