Hãy cùng FUNiX tìm hiểu về cách sử dụng lệnh split để chia nhỏ tệp trong Linux. Cho dù bạn cần trích xuất một số phần cụ thể của một tệp lớn hay chia tệp thành các phần nhỏ hơn, lệnh split có thể giúp bạn đạt được mục tiêu một cách dễ dàng.
Lệnh split là gì?
Lệnh split là một công cụ dòng lệnh phổ biến của Linux, được sử dụng để chia một tệp thành các tệp con nhỏ hơn.
Lệnh split rất hữu ích trong việc quản lý các tệp lớn hoặc khi truyền tệp qua mạng yếu. Bằng cách chia một tệp lớn thành các phần nhỏ hơn, bạn có thể giảm lượng dữ liệu cần truyền hoặc lưu trữ bất kỳ lúc nào. Bạn cũng có thể đảo ngược lệnh split để kết hợp nhiều tệp thành một.
Cú pháp lệnh split
Cú pháp cơ bản là:
split [OPTION]... [FILE] [PREFIX]
- [OPTION]: Lệnh split có các tùy chọn (option) khác nhau để quyết định cách bạn muốn tệp được chia và các tính năng cụ thể khác mà bạn có thể quan tâm khi thêm vào.
- [FILE]: Đường dẫn đến file muốn tách.
- [PREFIX]: Tiền tố của các tệp con.
Cách sử dụng lệnh split
Bạn có thể dùng lệnh split để chia một tệp lớn thành các tệp nhỏ hơn theo kích thước hoặc độ dài. Bạn thậm chí có thể chọn số lượng tệp nhỏ hơn mà bạn muốn.
Để minh họa, chúng tôi sẽ sử dụng tệp văn bản có tên largefile.txt. Hãychọn một tệp văn bản có nhiều dòng và kích thước khá lớn cho hướng dẫn này. Nếu không có, bạn có thể sử dụng trình soạn thảo văn bản Linux hoặc lệnh cat để paste vào một văn bản lớn và lưu nó.
Chia nhỏ các tệp lớn dựa trên số lượng dòng
Bạn có thể sử dụng lệnh split để chia một tệp lớn thành các tệp nhỏ hơn dựa trên số dòng trên mỗi tệp. Đây là cú pháp:
split -l [number of lines] [input file] [output file prefix]
Ví dụ: bạn có thể muốn chia một tệp có 210 dòng thành các tệp có 50 dòng mỗi tệp; bạn sẽ nhận được năm tệp nhỏ hơn. Bốn tệp đầu tiên sẽ có 50 dòng mỗi tệp và tệp thứ năm sẽ chỉ chứa 10 dòng.
Để chia một tệp có tên “largefile.txt” thành nhiều tệp nhỏ, mỗi tệp có 100 dòng, hãy chạy lệnh:
split -l 100 largefile.txt smallfile
Liệt kê nội dung của thư mục bằng lệnh ls và bạn sẽ thấy các tệp được chia.
Chia nhỏ tệp lớn dựa trên kích thước
Bạn cũng có thể dùng lệnh split để chia một tệp lớn thành nhiều tệp nhỏ hơn dựa trên kích thước cụ thể. Đây là cú pháp cơ bản:
split -b [size in bytes] [input file] [output file prefix]
Dùng lệnh dưới đây để chia nhỏ largefile.txt thành các tệp nhỏ hơn, có kích thước 300 byte mỗi tệp:
split -b 300 largefile.txt smallfile
Đây là kết quả:
Tách một tệp lớn thành một số tệp nhất định
Bạn cũng có thể chia nhỏ một tệp lớn thành một số tệp nhỏ nhất định. Bạn làm điều này bằng tùy chọn -n. Đây là cú pháp:
split -n [number of files] [input file] [output file prefix]
Để chia một tệp lớn thành 5 phần, hãy thực hiện lệnh này:
split -n 5 largefile.txt smallfile
Kết quả sẽ giống như thế này:
Thay đổi độ dài hậu tố (suffix) của tệp được chia
Độ dài mặc định của các hậu tố (suffix) được đính kèm với tên tệp đầu ra là 2. Ví dụ: smallfile aa, smallfile ab, smallfile ac, v.v.
Để thay đổi độ dài của hậu tố, bạn sử dụng tùy chọn -a. Đây là cú pháp để thay đổi độ dài hậu tố:
split -a [length of suffix] [input file] [output file prefix]
Bạn có thể kết hợp tùy chọn độ dài hậu tố (suffix) này cùng với các lệnh split khác. Để chia tệp largefile.txt thành 10 phần với độ dài hậu tố là 4, hãy thực hiện lệnh này:
split -a 4 -n 10 largefile.txt smallfile
Đầu ra của lệnh như sau:
Hợp nhất nhiều tệp với lệnh cat
Bạn cũng có thể hợp nhất các tệp đã chia nhỏ với nhau để tạo tệp gốc. Để hợp nhất các tệp đã tách thành tệp gốc, hãy sử dụng lệnh cat. Đây là cú pháp để làm điều đó:
cat [split files] > [output file]
Điều quan trọng nhất sử dụng lệnh cat để hợp nhất các tệp đã tách là bạn phải chỉ định đúng thứ tự của các tệp đã tách.
Lệnh cat chỉ nối các tệp theo thứ tự đã chỉ định, vì vậy nếu các tệp không theo đúng thứ tự, tệp được hợp nhất sẽ bị lộn xộn.
Nếu bạn có nhiều tệp được chia, lên đến hàng trăm tệp, sẽ rất khó để nhập từng tệp một theo đúng thứ tự.
Lúc này tiền tố (prefix) sẽ giúp bạn. Chỉ cần thêm dấu hoa thị (*) cho phép bạn hợp nhất tất cả các tệp bắt đầu bằng tiền tố đó.
cat prefix* > [output file]
Đây là một lệnh ví dụ hợp nhất các tệp đã tách smallfileaa, smallfileab, smallfileac và smallfilead thành một tệp duy nhất có tên bigfile.txt:
cat smallfile* > bigfile.txt
Lệnh này sẽ nối nội dung của tất cả các tệp đã tách khớp với mẫu smallfile * và chuyển hướng đầu ra sang một tệp mới có tên là bigfile.txt. Nó cũng sẽ liệt kê các tệp được tách theo thứ tự tên của chúng.
Sử dụng các công cụ Linux để tăng năng suất
Lệnh split chỉ là một trong nhiều lệnh của Linux, giúp bạn quản lý hiệu quả các tệp lớnbằng cách chia chúng thành các phần nhỏ dễ quản lý hơn. Hãy học cách sử dụng các lệnh xử lý văn bản Linux để tiết kiệm thời gian, tài nguyên và làm việc hiệu quả hơn.
Tìm hiểu ngay chương trình học công nghệ thông tin trực tuyến tại FUNiX ở đây:
Vân Nguyễn
Dịch từ: https://www.makeuseof.com/split-command-split-files-in-linux/













Bình luận (0
)