ฉันได้คำตอบในหัวข้อที่เป็นประโยชน์นี้แต่ปัญหาของฉันดูเหมือนจะแตกต่างกันพอที่ฉันไม่สามารถคิดถึงคำตอบที่ดี (อย่างน้อยก็ด้วยsed
)
ฉันมีไฟล์ CSV ขนาดใหญ่ (200+ GB) พร้อมแถวที่มีลักษณะดังนี้:
<alphanumerical_identifier>,<number>
ที่<alphanumerical_identifier>
ไม่ซ้ำกันในไฟล์ทั้งหมด ฉันต้องการสร้างไฟล์แยกที่แทนที่คอลัมน์แรกด้วยดัชนีเช่น
<index>,<number>
เพื่อให้เราได้รับ:
1, <number>
2, <number>
3, <number>
สามารถawk
สร้างดัชนีที่เพิ่มขึ้นโดยไม่โหลดไฟล์เต็มในหน่วยความจำได้ไหม?
เนื่องจากดัชนีเพิ่มขึ้นแบบ monotonically มันอาจจะดีกว่าถ้าจะวางดัชนี วิธีแก้ปัญหาสำหรับสิ่งนั้นจะแตกต่างกันหรือไม่เช่น:
<number>
<number>
<number>
awk -F, '{print ++n, $2}'
จะทำงาน หรือawk -F, '{print $2}'
สำหรับรูปแบบที่สอง
FNR
จะให้บริการเช่นเดียวกับ++n