Bash 创建自定义字符串

Bash 创建自定义字符串

在 bash 中如何能出现这样的模式

ROW1   n1    n2    n3   n4 

最多 300 个,可以通过一些命令来完成,bash或者也可以只是perl...分隔符需要\t

如上

答案1

您可以使用括号扩展和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

答案2

更简单的命令:

echo -n "ROW1" && echo -ne "\t"n{1..300}

更加简单,得益于@hildred

echo -ne "ROW1" "\t"n{1..300}

答案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)'

相关内容