Tôi đã xem qua các câu trả lời trong chủ đề hữu ích này , nhưng vấn đề của tôi dường như đủ khác để tôi không thể nghĩ ra câu trả lời hay (ít nhất là với sed
).
Tôi có một tệp CSV lớn (hơn 200 GB) với các hàng trông như sau:
<alphanumerical_identifier>,<number>
nơi <alphanumerical_identifier>
duy nhất trên toàn bộ tập tin. Tôi muốn tạo một tệp riêng thay thế cột đầu tiên bằng một chỉ mục , nghĩa là
<index>,<number>
để chúng tôi nhận được:
1, <number>
2, <number>
3, <number>
Có thể awk
tạo một chỉ mục tăng mà không tải tập tin đầy đủ trong bộ nhớ?
Vì chỉ số tăng đơn điệu, có thể tốt hơn nếu chỉ bỏ chỉ số. Giải pháp cho điều đó có khác không?, Tức là:
<number>
<number>
<number>
awk -F, '{print ++n, $2}'
sẽ làm việc. Hoặc awk -F, '{print $2}'
cho biến thể thứ hai.
FNR
sẽ phục vụ tốt như++n