Trong bash
, bạn có thể thử:
printf "%s\n" {{a..z},{A..Z},{0..9}}{{a..z},{A..Z},{0..9}}{{a..z},{A..Z},{0..9}}{{a..z},{A..Z},{0..9}}{{a..z},{A..Z},{0..9}}
nhưng điều đó sẽ mất mãi mãi và sử dụng hết bộ nhớ của bạn. Tốt nhất là sử dụng một công cụ khác như perl
:
perl -le '@c = ("A".."Z","a".."z",0..9);
for $a (@c){for $b(@c){for $c(@c){for $d(@c){for $e(@c){
print "$a$b$c$d$e"}}}}}'
Coi chừng đó là 6 x 62 5 byte, vì vậy 5,496,796,992.
Bạn có thể thực hiện cùng một vòng lặp đó bash
, nhưng bash
là lớp vỏ chậm nhất ở phía tây, sẽ mất hàng giờ:
export LC_ALL=C # seems to improve performance by about 10%
shopt -s xpg_echo # 2% gain (against my expectations)
set {a..z} {A..Z} {0..9}
for a do for b do for c do for d do for e do
echo "$a$b$c$d$e"
done; done; done; done; done
(trên hệ thống của tôi, kết quả đầu ra ở mức 700 kiB / giây so với 20MiB / giây perl
tương đương).