Lệnh tách tệp văn bản theo số dòng


16

Tình huống:

Tôi có một tệp văn bản có dung lượng khoảng 1,5 GB chứa khoảng 4000000dòng.

Tôi muốn nhập Libreoffice calctệp này vào và vì bạn biết rằng bạn không thể nhập tệp khổng lồ này với số lượng dòng lớn (tôi nghĩ tối đa là 65000 dòng).

Dù sao những gì tôi cần là một lệnh đơn giản có thể chia tệp này thành các tệp nhỏ hơn với số dòng trong mỗi tệp <65000 dòng.


@hakermania: xong.
Tarun

Câu trả lời:


19

Bạn có thể sử dụng splitlệnh:

split -l N /path-to-file

Trong đó N là số dòng tối đa có thể có trong một tệp.

Lệnh này sẽ chia tệp thành các tệp nhỏ hơn, mỗi tệp có N dòng.

Sử dụng man splitđể biết thêm.


3

Nếu bạn sử dụng phân tách và tạo nhiều tệp, vấn đề tiếp theo của bạn sẽ là cách sử dụng Calc để thao tác tất cả dữ liệu đó trên tất cả các tệp đó. Và đó là chồng chất một vấn đề khác. Với 65000 dòng, đây sẽ là 62 trang (!).

Bạn chỉ đang sử dụng công cụ sai. Sử dụng Libreoffice Base hoặc MySQL để nhập dữ liệu và sau đó sử dụng Libreoffice Calc để thực hiện tính toán và / hoặc thao tác trên dữ liệu đó.

Về các giới hạn, điều này phụ thuộc vào chuyển đổi Libreoffice mà bạn đang sử dụng:

  • trước 3.3.3: giới hạn là 65 536 hàng
  • 3.3.3 trở lên: 1 048 576 hàng (1M)

Nếu bạn muốn bạn có thể thực hiện các bản ghi 4m với 3.3.3+ với 4 trang nhưng mô-đun cơ sở của LibreOffice có thể nhập với hầu như không có giới hạn hàng nào nếu điều đó là không đủ. Đây là phần giới thiệu về cách thực hiện điều nàyđây là một cơ sở dữ liệu mẫu với tệp nhập . Thao tác dữ liệu trong Base rất dễ dàng và nhanh chóng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.