Bash创建自定义字符串
怎么可能像bash一样模式
ROW1 n1 n2 n3 n4
使用bash
某个命令或者只是perl
来完成最多300个…分隔符需要是\t
如上
你可以使用大括号扩展和printf
:
printf "%s\t" ROW1 n{1..300}
第一个字符串指定输出到printf
的格式, %s
替换为相应的参数。 由于只有%s
, printf
将重复使用格式说明符,直到所有参数都用完为止。 这将留下一个尾随标签。
{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)'