bạn chỉ cần làm
seq 1 n | xargs -n 5 echo
n là số bạn muốn đạt được
Nếu hệ điều hành của bạn có bash nhưng không seq, đây là một giải pháp thay thế (thx thành @cuonglm và @jimmyj cho nhận xét của họ)
echo {1..n} | xargs -n5
(bạn có thể phải cẩn thận khi đạt số lượng rất cao với số đó, tùy thuộc vào phiên bản HĐH và bash, và nếu bash thực sự cố gắng mở rộng trước hoặc trong trường hợp đó đủ thông minh để nuôi từng chút một mà không cố gắng phù hợp với toàn bộ 1..n như một chuỗi trong bộ nhớ và cung cấp tiếng vang đó ...)
Và nhờ cuonglm và StephaneChazelas, tôi thêm một giải pháp thay thế rất nặng CPU, ít hơn so với giải pháp xargs đầu tiên của tôi (trong đó xargs gọi / bin / echo, thay vì có thể sử dụng hàm dựng sẵn của vỏ, cứ sau 5 số) có lẽ tương tự như cái thứ 2 trong đó xargs không gọi echo):
printf '%s %s %s %s %s\n' {1..n}
Giải pháp thứ 2 và thứ 3 khác với giải pháp thứ nhất là vỏ đầu tiên phải mở rộng 1..n, trước khi printf (hoặc xargs) có thể bắt đầu in, nếu tôi không nhầm ... thì nó sẽ bắt đầu sau (đặc biệt là nếu n lớn) ... Và có thể đạt đến một số giới hạn (độ dài dòng hoặc bộ nhớ, tùy thuộc vào việc triển khai và HĐH) nếu n rất lớn.
1
trongseq 1 15
là không thực sự cần thiết.