Как создать цикл с пятью (5) входными переменными?

Я бы сказал, что использование sudo работает в командной строке (поскольку позволяет ввести пароль в командной строке) , но, вероятно, не будет работать в графической среде.

В такой ситуации вы должны использовать gksudo или kdesudo , в зависимости от среды рабочего стола, которую вы используете - см. Графический sudo для получения дополнительной информации. .

5
27.10.2018, 18:35
3 ответа

Dado este archivo:

$ cat input
GROUP, cval1, tval1, dval1, mval1, kval1
DISREGARD, you, should, not, parse, this, line
GROUP, cval2, tval2, dval2, mval2, kval2
GROUP, cval3, tval3, dval3, mval3, kval3

Y dado este guión:

#!/bin/bash
awk -F, '/^GROUP/ {print $2,$3,$4,$5,$6}' input | while read c t d m k; do
  echo -cval $c -tval $t -dval $d -mval $m -kval $k
done

Obtenemos este resultado:

$./go.sh
-cval cval1 -tval tval1 -dval dval1 -mval mval1 -kval kval1
-cval cval2 -tval tval2 -dval dval2 -mval mval2 -kval kval2
-cval cval3 -tval tval3 -dval dval3 -mval mval3 -kval kval3

Reemplace echocon su comando propietario y debería estar listo.

6
27.01.2020, 20:33

sed método:

sed -n '/^GR/{s/^GROUP/command/
              s/,/-c/
              s/,/-t/
              s/,/-d/
              s/,/-m/
              s/,/-k/
              s/-./ &val /gp}' input

Salida (dado lo que hay en el OP):

command -cval cval -tval tval -dval dval -mval mval -kval kval
command -cval cval -tval tval -dval dval -mval mval -kval kval
command -cval cval -tval tval -dval dval -mval mval -kval kval

Para ejecutar realmente la salida, (después de verificar cuidadosamente si hay algún código incorrecto allí ), cambie elgp(global print)al final a unge(global evalorar).

3
27.01.2020, 20:33

Con GNU Parallel(y tomando prestada descaradamente la entrada provista en la respuesta de DopeGhoti

grep '^GROUP' input | parallel --col-sep ', *' -- \
  /bin/echo -cval {2} -tval {3} -dval {4} -mval {5} -kval {6}

Salida:

-cval cval1 -tval tval1 -dval dval1 -mval mval1 -kval kval1
-cval cval2 -tval tval2 -dval dval2 -mval mval2 -kval kval2
-cval cval3 -tval tval3 -dval dval3 -mval mval3 -kval kval3

Reemplace /bin/echopor su comando actual.

3
27.01.2020, 20:33

Теги

Похожие вопросы