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
在我看來,這仍然可能對其他數值程序員有所幫助。
添加回答
舉報