Lệnh paste trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh paste trong Linux để kết hợp nhiều file theo chiều ngang và chiều dọc. Lệnh paste cho phép bạn hợp nhất các dòng tương ứng của các file đầu vào thành một dòng duy nhất, biến nó thành một công cụ hữu ích cho các tác vụ xử lý văn bản và thao tác dữ liệu. Bạn sẽ khám phá cách sử dụng cơ bản của lệnh paste, cũng như cách tùy chỉnh đầu ra bằng cách chỉ định một dấu phân cách khác. Ngoài ra, bạn sẽ học cách tạo một cấu trúc giống như ma trận bằng cách kết hợp nhiều file bằng lệnh paste.

Lab bao gồm các bước chính sau:

  1. Tìm hiểu các Khái niệm Cơ bản của Lệnh paste
  2. Kết hợp Nhiều File Bằng Lệnh paste
  3. Tùy chỉnh Đầu ra của Lệnh paste

Lab này được thiết kế để cung cấp cho bạn các ví dụ thực tế và kinh nghiệm thực hành với lệnh paste, cho phép bạn kết hợp và thao tác dữ liệu văn bản một cách hiệu quả trong môi trường Linux của bạn.

Tìm hiểu các Khái niệm Cơ bản của Lệnh paste

Trong bước này, chúng ta sẽ tìm hiểu các khái niệm cơ bản của lệnh paste trong Linux. Lệnh paste được sử dụng để kết hợp nhiều file theo chiều ngang, hợp nhất các dòng tương ứng của chúng thành một dòng duy nhất.

Đầu tiên, hãy tạo một vài file mẫu để làm việc:

echo -e "Apple\nBanana\nCherry" > file1.txt
echo -e "Red\nYellow\nPurple" > file2.txt
echo -e "Fruit\nFruit\nFruit" > file3.txt

Bây giờ, chúng ta có thể sử dụng lệnh paste để kết hợp các file này:

paste file1.txt file2.txt file3.txt

Ví dụ đầu ra:

Apple   Red     Fruit
Banana  Yellow  Fruit
Cherry  Purple  Fruit

Lệnh paste lấy các dòng tương ứng từ các file đầu vào và kết hợp chúng thành một dòng duy nhất, được phân tách bằng ký tự tab mặc định.

Bạn cũng có thể chỉ định một dấu phân cách khác bằng tùy chọn -d:

paste -d "," file1.txt file2.txt file3.txt

Ví dụ đầu ra:

Apple,Red,Fruit
Banana,Yellow,Fruit
Cherry,Purple,Fruit

Trong ví dụ này, chúng ta đã sử dụng dấu phẩy (,) làm dấu phân cách thay vì ký tự tab mặc định.

Kết hợp Nhiều File Bằng Lệnh paste

Trong bước này, chúng ta sẽ học cách sử dụng lệnh paste để kết hợp nhiều file theo những cách nâng cao hơn.

Đầu tiên, hãy tạo thêm một vài file mẫu:

echo -e "Monday\nTuesday\nWednesday" > days.txt
echo -e "1\n2\n3" > numbers.txt

Bây giờ, chúng ta có thể sử dụng lệnh paste để kết hợp các file này theo những cách khác nhau:

Kết hợp file theo chiều ngang:

paste file1.txt file2.txt file3.txt

Kết hợp file theo chiều dọc:

paste -d "\n" file1.txt file2.txt file3.txt

Ví dụ đầu ra:

Apple   Red     Fruit
Banana  Yellow  Fruit
Cherry  Purple  Fruit

Trong việc kết hợp theo chiều dọc, chúng ta đã sử dụng tùy chọn -d "\n" để chỉ định ký tự xuống dòng làm dấu phân cách, điều này xếp các dòng từ các file chồng lên nhau.

Bạn cũng có thể sử dụng lệnh paste để tạo một cấu trúc giống như ma trận bằng cách kết hợp nhiều file:

paste days.txt numbers.txt

Ví dụ đầu ra:

Monday  1
Tuesday 2
Wednesday       3

Trong ví dụ này, lệnh paste kết hợp các dòng tương ứng từ các file days.txtnumbers.txt.

Tùy chỉnh Đầu ra của Lệnh paste

Trong bước cuối cùng này, chúng ta sẽ học cách tùy chỉnh đầu ra của lệnh paste để phù hợp với nhu cầu cụ thể của mình.

Đầu tiên, hãy tạo một file mẫu khác:

echo -e "apple,red\nbanana,yellow\ncherry,purple" > fruits.csv

Bây giờ, giả sử chúng ta muốn kết hợp thông tin từ các file file1.txt, file2.txtfruits.csv, và phân tách các trường đầu ra bằng dấu chấm phẩy (;) thay vì ký tự tab mặc định.

Chúng ta có thể sử dụng lệnh sau:

paste file1.txt file2.txt fruits.csv -d ";"

Ví dụ đầu ra:

Apple;Red;apple,red
Banana;Yellow;banana,yellow
Cherry;Purple;cherry,purple

Trong ví dụ này, chúng ta đã sử dụng tùy chọn -d ";" để chỉ định dấu chấm phẩy làm dấu phân cách.

Bạn cũng có thể sử dụng lệnh printf để tùy chỉnh thêm định dạng đầu ra:

paste file1.txt file2.txt fruits.csv | awk -F"\t" '{printf "%s; %s; %s\n", $1, $2, $3}'

Ví dụ đầu ra:

Apple; Red; apple,red
Banana; Yellow; banana,yellow
Cherry; Purple; cherry,purple

Trong ví dụ này, chúng ta đã sử dụng lệnh awk để tách đầu vào trên ký tự tab (-F"\t"), và sau đó sử dụng lệnh printf để định dạng đầu ra với dấu phân cách mong muốn (;) và xuống dòng (\n).

Tóm tắt

Trong lab này, chúng ta đã học những điều cơ bản về lệnh paste trong Linux, được sử dụng để kết hợp nhiều file theo chiều ngang, hợp nhất các dòng tương ứng của chúng thành một dòng duy nhất. Chúng ta đã khám phá cách tùy chỉnh đầu ra của lệnh paste bằng cách sử dụng các dấu phân cách khác nhau và cách kết hợp nhiều file theo những cách nâng cao hơn, chẳng hạn như kết hợp chúng theo chiều dọc hoặc tạo một cấu trúc giống như ma trận.

Lab cung cấp các ví dụ thực tế và hướng dẫn từng bước để giúp chúng ta hiểu cách sử dụng và khả năng của lệnh paste. Đến cuối lab, chúng ta đã có được sự hiểu biết vững chắc về cách sử dụng lệnh paste một cách hiệu quả để thao tác và kết hợp dữ liệu từ nhiều file trong Linux.

400+ câu lệnh phổ biến trong Linux