Bash创建自定义字符串

怎么可能像bash一样模式

ROW1 n1 n2 n3 n4 

使用bash某个命令或者只是perl来完成最多300个…分隔符需要是\t

如上

你可以使用大括号扩展和printf

 printf "%s\t" ROW1 n{1..300} 

第一个字符串指定输出到printf的格式, %s替换为相应的参数。 由于只有%sprintf将重复使用格式说明符,直到所有参数都用完为止。 这将留下一个尾随标签。

{1..300}是bash语法,它扩展为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 "\tn${i}"; done 

或者使用支撑扩展的相同方法(感谢AB的建议):

 echo -n "ROW1"; for i in {1..300}; do echo -ne "\tn${i}"; done 

因为你提到了perl

 perl -e 'printf "ROW1"; printf "\tn%d",$_ foreach (1..300)'