$ eval echo\ {a,b,c}\;
a
b
c
, которая, по-видимому, позволяет нам вырезать файл значений, разделенных пробелами, и выплюнуть их из трех строк с помощью простого printf
(я использовал [1133844]8. 3[1133845] формат с плавающей точкой только для того, чтобы претендовать на вывод, но вы можете использовать [1133846]%s[1133847] для эха каждого поля в качестве необработанной строки).
$ for X in {a,b,c}; do echo $X; done
Для подсчета результирующих векторов Вы можете просто использовать [1133848]wc[1133849] - если Вы не возражаете против того, что счет идет [1133850]после [1133851] данных, то Вы можете просто перевести вывод
Если Вы действительно настаиваете на том, чтобы поставить счетчик на вершину, то одной из возможностей может быть вывод в переменную, затем считать и распечатать переменную (это будет зависеть от тех же соображений памяти, что и другие методы на месте)
Если вы настоящий пурист оболочки, то вы можете использовать [1133852]mapfile[1133853] (или его синоним [1133854]readarray[1133855]), чтобы запихнуть re форматирует данные в массив вместо строковой переменной - и затем использует оператор счета оболочки [1133856]${#array[@]}[1133857], чтобы избежать внешнего вызова [1133858]wc
Окончательная printf снова использует функцию повторного использования формата для поочередной печати каждого элемента массива, терминированного новой строкой. [1133466]