หากคุณกำลังดูตัวเลขขนาดใหญ่ฉันไม่สามารถแก้ไขปัญหาข้างต้นได้ ตัวอย่างเช่นลองรับจำนวนมากจริงๆ:
$ echo 2^512 |bc -l|tr -d -c [0-9]
13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096
หมายเหตุฉันต้องการที่tr
จะลบออก backslash ขึ้นบรรทัดใหม่ออกจาก bc หมายเลขนี้ใหญ่เกินไปที่จะถือเป็นเลขทศนิยมหรือเลขคงที่ใน awk และฉันไม่ต้องการสร้าง regexp ที่ใหญ่พอที่จะรองรับตัวเลขทั้งหมดในตัวเลข แต่ฉันสามารถย้อนกลับและใส่เครื่องหมายจุลภาคระหว่างกลุ่มตัวเลขสามหลักแล้วกลับมาอีกครั้ง:
echo 2^512 |bc -l|tr -d -c [0-9] |rev |sed -e 's/\([0-9][0-9][0-9]\)/\1,/g' |rev
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
echo 123456789 | awk '$0=gensub(/(...)/,"\\1,","g")'