Если у меня есть следующее:
$ printf '%s\n' "${fa[@]}"
1 2 3
4 5 6
7 8 9
где каждая строка - это новый элемент массива. Я хочу иметь возможность разделить элемент с помощью разделителя пробела и использовать результат как 3 отдельных параметра и конвейер в xargs.
Например, первый элемент:
1 2 3
где, используя xargs, я хочу передать 1
, 2
и 3
в простую команду эха, такую как:
$ echo $0
1
4
7
$ echo $1
2
5
8
$ echo $2
3
9
6
Итак, я пытался сделать это следующим образом:
printf '%s\n' "${fa[@]}" | cut -d' ' -f1,2,3 | xargs -d' ' -n 3 bash -c 'echo $0'
который дает:
1
2
3 4
5
6 7
8
9 10
что помимо странного порядка строк - попытка xargs -d' ' -n 3 bash -c 'echo $0'
не распечатывает первый «элемент» каждой строки, т.е.
$ echo $0
1
4
7
а распечатывает их все.
Я спрашиваю, как для каждого элемента разбить строку на три отдельных аргумента, на которые можно ссылаться через xargs?
Спасибо!
10
в выводе? - person Jonathan Leffler   schedule 19.04.2015