Đưa ra tệp này (chú thích không phải là một phần của tệp, nhưng là một phần của giải thích) ...
x,a,001,b,c,d,y
x,a,002,b,c,e,yy
x,bb,003,b,d,e,y
x,c,004,b,d,e,y
x,c,005,b,d,e,y # nb - dupe of row 4
x,dd,006,b,d,e,y
x,c,007,b,d,e,y # nb - dupe of row 4 and 5
x,dd,008,b,d,f,y
x,dd,009,b,d,e,y # nb - dupe of row 6
x,e,010,b,d,f,y
... Tôi muốn lấy đầu ra sau:
x,a,001,b,c,d,y
x,a,002,b,c,e,yy
x,bb,003,b,d,e,y
x,c,004,b,d,e,y
x,dd,006,b,d,e,y
x,dd,008,b,d,f,y
x,e,010,b,d,f,y
Nếu cột 3 bị cắt khỏi tệp và sau đó uniq được chạy trên tệp, thì nếu các hàng còn lại có cột ba giá trị được thêm lại vào đúng vị trí, thì tôi sẽ nhận được kết quả trên.
Nhưng tôi thực sự vật lộn, để đưa ra một cái gì đó sẽ làm điều này. Tôi hoan nghênh cơ hội tìm hiểu về các tiện ích xử lý văn bản của linux.
Hiệu suất: Các tệp không có khả năng tăng lên hơn 1 MB và chỉ có 1 tệp mỗi ngày.
Mục tiêu: Debian GNU / Linux 7 amd64, 256MB / Xeon.
Chỉnh sửa: ví dụ được điều chỉnh vì các trường không phải là băng thông cố định và một giải pháp liên quan uniq --skip-chars=n
sẽ không hoạt động như tôi có thể nói.
uniq
- kiểm tra câu trả lời cập nhật của tôi. :)