Если я следующее:Split линии на 3 отдельных аргументов с помощью xargs
$ 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'? –
Входной файл на самом деле длиннее (гораздо длиннее!), Но тот же формат трех столбцов. Я отрезал его для удобства объяснения вопроса. – brucezepplin