次のリストをどのように作成できますか?
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
私が走る場所command 15
や何か。または、私が指定した場合は、100
100個の数字を使用するか、10000
10000個の数字でこれを作成します。
各行には、上記のように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が大きい場合、いくつかの制限(実装とオペレーティングシステムに応じて行の長さまたはメモリ)に達します。