Здесь нет необходимости в трех трубопроводах; просто используйте read
, чтобы извлечь первые три поля из строки.
for foo in "${bar[@]}"; do
read bar1 bar2 bar3 the_rest <<< "$foo"
done
the_rest
необходимо только в том случае, если есть вероятность, что foo
может быть чем-то вроде «abcd», и вы не хотите, чтобы для bar3
было установлено значение cd
.