在 bash 中如何能出现这样的模式
ROW1 n1 n2 n3 n4
最多 300 个,可以通过一些命令来完成,bash
或者也可以只是perl
...分隔符需要\t
如上
答案1
您可以使用括号扩展和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
答案2
答案3
一句话:
echo -n "ROW1"; for ((i=1; i<=300; i++)); do echo -ne "\t n${i}"; done
或者使用同样的方法,使用括号扩展(感谢 AB 的建议):
echo -n "ROW1"; for i in {1..300}; do echo -ne "\t n${i}"; done
答案4
因为你提到perl
perl -e 'printf "ROW1"; printf "\tn%d",$_ foreach (1..300)'