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