как мог в ударе шаблон как
ROW1 n1 n2 n3 n4
до 300 быть сделанным с некоторой командой в bash
или также просто perl
... разделитель должен был бы быть \t
как выше
Можно использовать расширение фигурной скобки и printf
:
printf "%s\t" ROW1 n{1..300}
первая строка определяет, что формат вывода к printf
, и %s
заменяется соответствующим аргументом. С тех пор существует [только 115], printf
снова используют спецификатор формата, пока все аргументы не будут исчерпаны. Это оставит запаздывающую вкладку.
{1..300}
синтаксис удара, который расширяется в числа от 1 до 300, разделенный пробелами. Если строка будет добавлена, то прежде или после фигурных скобок, расширенная форма будет также иметь ту строку присоединенной.
Для предотвращения запаздывающей вкладки необходимо будет распечатать что-то отдельно, или первое слово или последнее:
printf "ROW1"; printf "\tn%d" {1..300}
printf "%s\t" ROW1 n{1..299}; echo n300
Более простая команда:
echo -n "ROW1" && echo -ne "\t"n{1..300}
Еще более простой благодаря @hildred
echo -ne "ROW1" "\t"n{1..300}
В остроте:
echo -n "ROW1"; for ((i=1; i<=300; i++)); do echo -ne "\t n${i}"; done
Или использование того же подхода с помощью расширения фигурной скобки (благодаря A.B. для предложения):
echo -n "ROW1"; for i in {1..300}; do echo -ne "\t n${i}"; done
Поскольку Вы упомянули perl
perl -e 'printf "ROW1"; printf "\tn%d",$_ foreach (1..300)'