Lệnh split trong linux

Chia và nối các tệp trong Linux là một tác vụ khá đơn giản cho phép chúng tôi phân mảnh tệp thành nhiều tệp nhỏ hơn, điều này giúp chúng tôi trong nhiều trường hợp phân mảnh các tệp chiếm nhiều dung lượng bộ nhớ, hoặc để vận chuyển nó trên các đơn vị lưu trữ bên ngoài đối với các chính sách bảo mật như duy trì các bản sao dữ liệu bị phân mảnh và phân tán của chúng tôi. Đối với quá trình đơn giản này, chúng ta sẽ sử dụng hai lệnh quan trọng split và cat.

Index

  • 1 Chia tách là gì?
  • 2 Con mèo là gì?
  • 3 Cách tách và nối các tệp trong Linux bằng cách sử dụng split và cat

Chia tách là gì?

Là một lệnh cho hệ thống Unix  cho phép chúng ta chia một tệp thành nhiều tệp nhỏ hơn, nó tạo ra một loạt tệp có phần mở rộng và tương quan với tên tệp gốc, có thể tham số hóa kích thước của các tệp kết quả.

Để đi sâu vào phạm vi và đặc điểm của lệnh này, chúng ta có thể thực hiện phân tách man ở nơi chúng ta có thể xem tài liệu chi tiết của nó

Con mèo là gì?

Về phần mình, lệnh mèo linux cho phép bạn nối và hiển thị các tệp một cách dễ dàng và hiệu quả, tức là với lệnh này, chúng ta có thể xem các tệp văn bản khác nhau và chúng ta cũng có thể nối các tệp đã chia.

Theo cách tương tự như với split, chúng ta có thể xem tài liệu chi tiết về mèo với mèo command man.

Cách tách và nối các tệp trong Linux bằng cách sử dụng split và cat

Một khi bạn biết những điều cơ bản về lệnh tách và lệnh cat, việc chia nhỏ và nối các tệp trong Linux sẽ khá dễ dàng. Đối với một ví dụ chung trong đó chúng tôi muốn chia một tệp có tên là test.7z nặng 500mb thành nhiều tệp 100mb, chúng tôi chỉ cần thực hiện lệnh sau:

$ split -b 100m tes.7z dividido

Lệnh này sẽ trả về 5 tệp có dung lượng 100 mb từ tệp gốc, tệp này sẽ có tên là splitaa, splitab, v.v. Cần lưu ý rằng nếu chúng ta thêm tham số -d đối với hướng dẫn trước đó, tên của các tệp kết quả sẽ là số, nghĩa là, split01, split02 ...

$ split -b -d 100m tes.7z dividido

Bây giờ, để nối lại các tệp mà chúng ta đã chia, chúng ta chỉ cần thực hiện lệnh sau từ thư mục lưu trữ các tệp:

$ cat dividido* > testUnido.7z

Với những bước nhỏ nhưng đơn giản, chúng ta có thể chia và nối các tập tin trong Linux một cách đơn giản và dễ dàng, tôi hy vọng các bạn thích nó và hẹn gặp lại các bạn trong một bài viết sau.


Nội dung bài viết tuân thủ các nguyên tắc của chúng tôi về đạo đức biên tập. Để báo lỗi, hãy nhấp vào đây.

TRAINING

Lệnh split trong linux

Split file thành nhiều file nhỏ hơn bằng linux

Được viết bởi webmaster vào ngày 09/08/2020 lúc 06:20 PM

Đôi khi bạn phải làm việc với file hàng chục GB, mà bạn lại muốn xử lý từng dòng file dữ liệu này. Vậy để có thể chạy đa luồng thì bạn cần chia nhỏ thành nhiều file.

  • 0
  • 3062

Split file thành nhiều file nhỏ hơn bằng linux


Đôi khi bạn phải làm việc với file hàng chục GB, mà bạn lại muốn xử lý từng dòng file dữ liệu này. Vậy để có thể chạy đa luồng thì bạn cần chia nhỏ thành nhiều file. Trong linux có một command có thể giúp bạn làm việc này nhanh chóng:

// Kiểm tra số dòng của file
$ wc -l bigfile.txt
// Chia nhỏ theo số lượng dòng ở mỗi file con, giả sử là 1 triệu dòng mỗi file
$ split -l 1000000 bigfile.txt output_dir/prefix_

Nguồn bài viết: Sưu tầm

Bài viết tương tự

  • Trộn ngẫu nhiên (Shuffle) các dòng bằng linux
  • Xóa các dòng dữ liệu của file A có trong file B bằng linux
  • Kiểm tra encoding, chuyển về UTF-8 bằng linux
  • Xóa dòng dài hơn, ngắn hơn x ký tự bằng linux
  • Kiểm tra, xóa dòng theo điều kiện bằng linux
  • Đếm tần suất xuất hiện bằng linux
  • Sắp xếp và xóa trùng lặp bằng linux
  • Đếm số từ, số dòng trong file bằng linux
  • Xem nội dung tập tin bằng linux
  • Download dữ liệu từ internet bằng linux

4.6 Các câu lệnh cơ bản để làm việc với tập tin và thư mục 87

ban đầu và phần đầu prefix tên của các tập tin sẽ tạo ra. Các tập tin thu được sẽ có tên gồm phần đầu prefix này và hai chữ thêm vào để chúng không trùng
nhau: ‘aa’, ‘ab’, ‘ac’, ‘ad’, v.v. . . khơng có khoảng trắng và các dấu chấm giữa phần đầu và những chữ cái này. Nếu không đưa ra phần đầu, thì theo mặc định sử
dụng ‘x’, tức là sẽ thu được các tập tin ‘xaa’, ‘xab’, ‘xac’, ‘xad’ v.v. . .
Ngồi các tham số có thể thêm vào tùy chọn -b để xác định kích thước của các tập tin tạo ra tính theo byte. Sau -b là một số và sau đó là một chữ cái: k
kích thước tính theo KB hoặc m tính theo MB. Nếu khơng đưa ra tùy chọn này thì theo mặc định kích thước của tập tin thu được bằng 1MB. Để giải quyết bài
tốn đã đưa lúc đầu thì cần chạy lệnh:
[user] split -b 650m phim.mpg phim Sau đó dùng chương trình ghi đĩa sao chép hai tập tin thu được phimaa, phimab
lên hai đĩa CD-RW, rồi đưa chúng có nghĩa là dùng lệnh cp lên máy thứ hai vào một thư mục nào đó. Cuối cùng phục hồi tập tin ban đầu bằng lệnh:
[user] cat phim phim.mpg Sau đó có thể xóa đi các tập tin phimaa, phimab.

4.6.10 So sánh các tập tin và lệnh patch

Có thể bạn khơng để ý nhưng khi làm việc với máy tính cơng việc so sánh nội dung của hai tập tin khác nhau gặp một cách thường xun. Là vì có thể sao
chép tập tin một cách dễ dàng, rồi sau đó qn ln là tập tin nào mới hơn hoặc tốt hơn. Vì thế những công cụ dùng để so sánh tập tin là cần thiết và tất nhiên
là có trong Linux. Cơng cụ đơn giản nhất trong số này là lệnh cmp compare. Lệnh này chỉ so sánh nội dung của hai tập tin theo từng byte:
[user] cmp tập_tin1 tập_tin2 Nếu hai tập tin hồn tồn trùng nhau, thì lệnh hồn thành cơng việc mà
khơng đưa ra thơng báo gì, còn nếu chúng khác nhau thì đưa ra số thứ tự của dòng và byte ở chỗ có sự khác nhau.
Tất nhiên thơng tin mà lệnh cmp đưa ra hơi ít để có thể quyết định chọn tập tin nào trong số hai tập tin này, tập tin nào quan trọng hơn. Vì thế còn có thể sử
dụng câu lệnh diff để biết được sự khác nhau giữa hai tập tin ở đây là gì. Chỉ cần cho câu lệnh này biết tên hai tập tin mà bạn muốn so sánh. Ví dụ:
teppi82ThinhQuyen:~ diff ChangeLog ChangeLog2 1c1
11 tháng 09 năm 2006, phiên bản 0.9.3 ---
18 tháng 09 năm 2006, phiên bản 0.9.3 Thông báo về sự khác nhau sẽ hiển thị trên màn hình đầu ra tiêu chuẩn.
Chúng ta có thể chuyển hướng báo cáo này vào một tập tin:
88 Làm quen với hệ thống tập tin ext3fs
teppiThinhQuyen:~ diff ChangeLog ChangeLog2 ChangeLog.diff teppiThinhQuyen:~ more ChangeLog.diff
1c1 11 tháng 09 năm 2006, phiên bản 0.9.3
--- 18 tháng 09 năm 2006, phiên bản 0.9.3
Để đánh giá phiên bản của một tập tin thì thuận tiện hơn nếu sử dụng câu lệnh sdiff. Kết quả so sánh khi này sẽ hiển thị ở dạng hai cột, phân cách nhau
bởi các khoảng trắng. Nếu hai cột có cùng số thứ tự khác nhau, thì chúng sẽ cách nhau bởi một dấu gạch thẳng đứng “|”. Nếu một dòng nào đó chỉ có trong tập tin
thứ nhất thì nó được đánh dấu bằng một ký tự “”, nếu khơng có trong tập tin thứ hai – một ký tự “”.
Còn có câu lệnh diff3 cho phép so sánh 3 tập tin một lúc. Nhưng thường sử dụng nhất trên các hệ thống UNIX và Linux vẫn là câu lệnh diff. Có thể dễ
dàng hiểu điều này nếu biết rằng kết quả báo cáo của diff về sự khác nhau giữa hai tập tin có thể sử dụng cho câu lệnh patch. Thông thường khả năng này được
dùng khi phân phối bản cập nhật của chương trình ứng dụng. Lấy ví dụ đơn giản “một cách ngu ngốc”, một chương trình ứng dụng nào đó được đưa cho người
dùng ở dạng tập tin xvnkb-0.2.8.c, có chứa mã nguồn của chương trình này trên ngơn ngữ C. Sau đó nhà phát triển sửa các lỗi và cập nhật chương trình rồi
lưu mã nguồn trong một tập tin khác xvnkb-0.2.9.c. Bây giờ cần đưa những thay đổi đã làm đến cho người dùng. Tất nhiên là chỉ cần gửi cho người dùng
những thay đổi, tức là kết quả báo cáo tạo ra bằng lệnh:
[chuoi] diff xvnkb-0.2.8.c xvnkb-0.2.9.c xvnkb.c.diff Như vậy tất nhiên là kích thước của tập tin xvnkb.diff sẽ nhỏ hơn nhiều so
với xvnkb-0.2.9.c, sẽ tiết kiệm được dung lượng truyền tải qua mạng Internet nếu chỉ gửi xvnkb.c.diff. Trong trường hợp chương trình ứng dụng lớn thì sự
tiết kiệm này là đánh kể. Tuy nhiên tiết kiệm cho người dùng khơng phải là ứng dụng chính. Mà sự phát triển của ứng dụng mã mở mới là điểm chính. Chúng ta
nhớ rằng một ứng dụng mã mở được phát triển bởi cả một nhóm các nhà phát triển và cộng đồng. Mỗi nhà phát triển sẽ đóng góp đoạn mã của mình bằng
chính cách này.
Tuy nhiên sau khi nhận được tập tin .diff thì cần phải đưa những sửa đổi đã làm vào phiên bản hiện thời. Bài tốn này là do patch giải quyết. Đã có
xvnkb-0.2.8.c và xvnkb.c.diff, chỉ cần chạy lệnh:
[user] patch xvnkb-0.2.8.c xvnkb.c.diff xvnkb-0.2.9.c sẽ thu được tập tin xvnkb-0.2.9.c.

4.7 Các câu lệnh lưu trữ và nén tập tin

Khi sử dụng Linux rất có thể bạn sẽ ít làm việc với phần lớn các lệnh hệ vỏ shell
, vì đã có những chương trình tiện ích như Midnight Commander và các