Cách sử dụng lệnh split để tách tệp văn bản trong Linux

Cách sử dụng lệnh split để tách tệp văn bản trong Linux

Chia sẻ kiến thức 26/06/2023

Cùng FUNiX tìm hiểu cách chia một tệp lớn thành nhiều tệp nhỏ hơn bằng lệnh split trên Linux.

 

Linux cung cấp nhiều loại lệnh để thao tác và xử lý tệp văn bản, trong đó có lệnh split. Với split, bạn có thể dễ dàng chia các tệp lớn thành các tệp nhỏ hơn hoặc trích xuất một số phần của tệp dựa trên các tiêu chí nhất định.

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.

Kết quả của việc chia nhỏ các tệp lớn theo dòng

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ả:

Kết quả của việc chia nhỏ một tệp lớn theo kích thước

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:

Tách một tệp lớn theo số lượng tệp

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: 

Tách một tệp lớn thành các tệp nhỏ hơn với hậu tố dài hơn

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 smallfileaasmallfileabsmallfileac 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/

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, phường Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        

Cơ quan chủ quản: Công ty Cổ phần Giáo dục Trực tuyến FUNiX
MST: 0108171240 do Sở kế hoạch và Đầu tư thành phố Hà Nội cấp ngày 27 tháng 02 năm 2018
Địa chỉ:
Văn phòng Hà Nội: Tầng 4, Tòa nhà 25T2, Đường Nguyễn Thị Thập, phường Yên Hòa, Hà Nội.
Văn phòng TP.HCM: Lầu 8, Tòa nhà Giày Việt Plaza 180-182 Lý Chính Thắng, phường Nhiêu Lộc, TP. Hồ Chí Minh.
Hotline: 078 231 3602 – Email: info@funix.edu.vn

yêu cầu gọi lại