3 回答
TA贡献1876条经验 获得超5个赞
您的方法略有不同:
n=10
k=3
yes "$(yes 0 | head -n "$n" | paste -s -d,)" | head -n "$k"
如果需要逗号后的空格,则可以使用管道来sed 's/,/, /g'做到这一点。
TA贡献1827条经验 获得超4个赞
在纯 bash 中:
#!/usr/bin/env bash
cols=$1
rows=$2
declare -a row
for ((i = 0; i < cols; i++)); do
row+=(0)
done
IFS=, line="${row[*]}"
for ((i = 0; i < rows; i++)); do
echo "$line"
done
例子:
$ ./demo.sh 10 3
0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0
TA贡献1829条经验 获得超13个赞
很抱歉回答我自己的问题,但正如经常发生的那样,我在发布后很快就找到了一个很好的工作答案!我只是将其他几个 SO 答案组合在一起。提前感谢其他人一如既往地发现比我更简单的事情。
这工作正常:
export n
yes `python -c "import os; n=int(os.environ['n']); print(f'{\"0.0, \" * n}0.0')"` | head -n $k
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
在我看来,这仍然可能对其他数值程序员有所帮助。
添加回答
举报