このような数字を含むリストをどのように作成できますか?

このような数字を含むリストをどのように作成できますか?

次のリストをどのように作成できますか?

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15

私が走る場所command 15や何か。または、私が指定した場合は、100100個の数字を使用するか、1000010000個の数字でこれを作成します。

各行には、上記のように5つの数字が必要です。

ベストアンサー1

あなたはただ

seq 1 n | xargs -n 5 echo

nは連絡したい番号です。

OSにbashがあるがseqがない場合は、代替手段があります(コメントをいただいた@cuonglmと@jimmyjに感謝します)

echo {1..n} | xargs -n5

(到着時に注意が必要な場合があります。非常にOSとbashのバージョンに応じて、より高い数字は、bashが実際に最初に拡張しようとするか、この場合に1..n全体をメモリにストリングとしてインポートしようとせずにデータをビット単位で供給するのに十分スマートです。 、そしてエコーを提供します...)

cuonglmとStephaneChazelasのおかげで、最初のxargsソリューションよりも非常に少ないCPUリソースを使用する代替手段を追加しました(xargsは5つの数字ごとにシェルの組み込み機能を使用できる代わりに/ bin / echoを呼び出します)(xargsはecho呼び出さない2番目のものと似ています。)

printf '%s %s %s %s %s\n' {1..n}

2番目と3番目の解決策は、私が正しく覚えている場合は、printf(またはxargs)が印刷を開始する前にシェルが最初に1..nを拡張するという点で最初の解決策とは異なります.... ..特に、nが次の場合)。大))そしてできるnが大きい場合、いくつかの制限(実装とオペレーティングシステムに応じて行の長さまたはメモリ)に達します。

おすすめ記事