Tôi đang làm việc trên mac với sed, perl, awk, bash ..
Tôi có một tệp văn bản lớn (10 GB) có 13 trường (cột) TAB
dữ liệu được phân tách. Thật không may, một số dòng này không liên quan TABs
, vì vậy tôi muốn xóa toàn bộ dòng nơi chúng ta có thêm các trường TABs
và do đó các trường không bằng nhau. (Tôi không ngại loại bỏ toàn bộ các dòng)
Những gì tôi hiện đang ghi số lượng các trường vào một tập tin khác.
awk -F'\t' '{print NF}' infile > fieldCount
head fieldCount
13
13
10
13
13
13
14
13
13
13
Tôi muốn xây dựng một tập lệnh ngắn loại bỏ bất kỳ dòng nào có nhiều hơn (hoặc ít hơn) hơn 13 trường thích hợp (từ tệp gốc).
- tốc độ là hữu ích vì tôi phải làm điều này trên nhiều tập tin
- làm điều đó trong một lần quét sẽ rất tuyệt
- Tôi hiện đang chuyển tệp fieldCount sang Python, cố gắng tải từng dòng một.
BIÊN TẬP:
vaild (13 cột)
a b c d e f g h i j k l m
không hợp lệ (14 cột)
a b c d e f g h i j k l m n