cat <<'EOF' |
13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096
EOF
perl -wpe '1 while s/(\d+)(\d\d\d)/$1,$2/;'
sản xuất:
13,407,807,929,942,597,099,574,024,998,205,846,127,479,365,820,592,393,377,723,561,443,721,764,030,073,546,976,801,874,298,166,903,427,690,031,858,186,486,050,853,753,882,811,946,569,946,433,649,006,084,096
Điều này được thực hiện bằng cách chia chuỗi các chữ số thành 2 nhóm, nhóm bên phải có 3 chữ số, nhóm bên trái với bất cứ thứ gì còn lại, nhưng ít nhất một chữ số. Sau đó, mọi thứ được thay thế bởi 2 nhóm, được phân tách bằng dấu phẩy. Điều này tiếp tục cho đến khi sự thay thế thất bại. Các tùy chọn "wpe" là để liệt kê lỗi, kèm theo câu lệnh bên trong một vòng lặp với một bản in tự động và lấy đối số tiếp theo làm "chương trình" perl (xem lệnh perldoc perlrun để biết chi tiết).
Lời chúc tốt đẹp nhất ... chúc mừng, drl
echo 123456789 | awk '$0=gensub(/(...)/,"\\1,","g")'