我想要以下序列: OW HW1 HW2 在输出文件中重复 3000 次,例如:
OW
HW1
HW2
.
.
.
OW
HW1
HW2
我相信我可以通过使用 bash 将 OW、HW1 和 HW2 设置为自变量,然后进行 do 循环 3000 次并在输出文件中打印值。
答案1
您可以将此printf
技巧与零长度字符串说明符%.0s
和大括号扩展一起使用:
printf '%.0sOW\nHW1\nHW2\n' {1..3000} > newfile
答案2
如果使用for
in
循环:
for i in $(seq 1 3000) ; do echo -e "OW\nHW1\nHW2"; done
或使用 echo 3x
for i in $(seq 1 3000) ; do echo OW; echo HW1; echo HW2; done
答案3
使用 Perl 可以轻松完成:
perl -e'print "OW\n\HW1\nHW2\n"x3000'
答案4
如果您的 shell 提供“大括号扩展”,请尝试
echo $'\nOW\nHW1\nHW2\n'{1..3000}$'\n' | grep -Ev "^( |[0-9])*$"
OW
HW1
HW2
OW
HW1
HW2
OW
HW1
HW2
.
.
.
如果对结果满意,则重定向到文件。