Đôi khi, khi làm việc trên dòng lệnh trong Linux, có thể phát sinh tình huống mà bạn phải hợp nhất các dòng của nhiều tệp để tạo ra dữ liệu có ý nghĩa/hữu ích hơn. Vâng, bạn sẽ vui mừng khi biết rằng có một tiện ích dòng lệnh paste thực hiện việc này cho bạn. Trong hướng dẫn này, chúng ta sẽ thảo luận về những điều cơ bản của lệnh này cũng như các tính năng chính mà nó cung cấp bằng các ví dụ dễ hiểu.
Nhưng trước khi thực hiện, cần lưu ý rằng tất cả các ví dụ được đề cập trong bài viết này đều đã được thử nghiệm trên Ubuntu 16.04 LTS.
Và đây là cách pháp sư của paste giải thích:
Các ví dụ theo kiểu Hỏi & Đáp sau đây sẽ giúp bạn hiểu rõ hơn về cách paste hoạt động.
Và nhiệm vụ là hợp nhất các dòng của các tệp này theo cách mà mỗi hàng của đầu ra cuối cùng chứa chỉ mục, quốc gia và châu lục, sau đó bạn có thể thực hiện điều đó bằng cách sử dụng paste theo cách sau:
Ví dụ, để áp dụng dấu hai chấm
) làm ký tự phân cách, hãy sử dụng lệnh dán theo cách sau:
Đây là kết quả đầu ra mà lệnh này tạo ra trên hệ thống của chúng tôi:
Bạn có thể thực hiện thao tác này bằng tùy chọn dòng lệnh -s.
Sau đây là đầu ra:
Sau đây là kết quả:
Nhưng trước khi thực hiện, cần lưu ý rằng tất cả các ví dụ được đề cập trong bài viết này đều đã được thử nghiệm trên Ubuntu 16.04 LTS.
Lệnh dán Linux
Như đã đề cập ở trên, lệnh dán sẽ hợp nhất các dòng tệp. Đây là cú pháp của công cụ:
Mã:
paste [OPTION]... [FILE]...
Mã:
Viết các dòng bao gồm các dòng tương ứng tuần tự từ mỗi FILE, được phân tách bằng TAB,
vào đầu ra chuẩn. Nếu không có FILE hoặc khi FILE là -, hãy đọc đầu vào chuẩn.
Câu hỏi 1. Làm thế nào để nối các dòng của nhiều tệp bằng lệnh paste?
Giả sử chúng ta có ba tệp - file1.txt, file2.txt và file3.txt - với nội dung sau:Và nhiệm vụ là hợp nhất các dòng của các tệp này theo cách mà mỗi hàng của đầu ra cuối cùng chứa chỉ mục, quốc gia và châu lục, sau đó bạn có thể thực hiện điều đó bằng cách sử dụng paste theo cách sau:
Mã:
paste file1.txt file2.txt file3.txt
Câu hỏi 2. Làm thế nào để áp dụng dấu phân cách khi sử dụng paste?
Đôi khi, có thể có yêu cầu thêm ký tự phân cách giữa các mục của mỗi hàng kết quả. Bạn có thể thực hiện thao tác này bằng tùy chọn dòng lệnh -d, yêu cầu bạn cung cấp ký tự phân cách mà bạn muốn sử dụng.Ví dụ, để áp dụng dấu hai chấm
Mã:
paste -d : file1.txt file2.txt file3.txt
Câu hỏi 3. Làm thế nào để thay đổi cách hợp nhất các dòng?
Theo mặc định, lệnh dán hợp nhất các dòng theo cách mà các mục trong cột đầu tiên thuộc về tệp đầu tiên, các mục trong cột thứ hai thuộc về tệp thứ hai, v.v. Tuy nhiên, nếu muốn, bạn có thể thay đổi điều này để hoạt động hợp nhất diễn ra theo từng hàng.Bạn có thể thực hiện thao tác này bằng tùy chọn dòng lệnh -s.
Mã:
paste -s file1.txt file2.txt file3.txt
Câu hỏi 4. Làm thế nào để sử dụng nhiều dấu phân cách?
Có, bạn cũng có thể sử dụng nhiều dấu phân cách. Ví dụ, nếu bạn muốn sử dụng cả : và |, bạn có thể thực hiện theo cách sau:
Mã:
paste -d ':|' file1.txt file2.txt file3.txt
Câu hỏi 5. Làm thế nào để đảm bảo các dòng được hợp nhất được kết thúc bằng NUL?
Theo mặc định, các dòng được hợp nhất thông qua dán sẽ kết thúc bằng một dòng mới. Tuy nhiên, nếu muốn, bạn có thể làm cho chúng kết thúc bằng NUL, điều mà bạn có thể làm bằng cách sử dụng tùy chọn -z.
Mã:
paste -z file1.txt file2.txt file3.txt