Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình Bash

Làm Chủ Lệnh 'cat' Linux: Cú Pháp, Tùy Chọn & Ví Dụ Thực Tế

Lệnh cat (concatenate - nối) trong Linux/Bash thường được dùng nhất để đọc nội dung của một tệp. Nó xuất nội dung của tệp cho trước. Đây là cách sử dụng nó.

cat nối các tệp vào đầu ra chuẩn – theo mặc định, đây là console để xem trên màn hình máy tính của bạn. Điều này làm cho nó hữu ích để xem nhanh nội dung các tệp.

Nó cũng có những việc dùng khác, nhưng trước tiên, là cú pháp:

Cú Pháp cat

cat [OPTIONS] [FILE]

Lưu ý rằng:

  • Nếu FILE không được chỉ định, sẽ đọc từ đầu vào chuẩn (stdin)
  • Nhiều FILE có thể được chỉ định, phân tách bằng dấu cách
  • OPTIONS nên là danh sách các tùy chọn từ bảng dưới đây
  • Lệnh sẽ xuất dữ liệu qua đầu ra chuẩn (stdout)

Tùy Chọn

Dưới đây là các tùy chọn thường dùng cho cat, lấy trực tiếp từ hướng dẫn sử dụng:

Tùy chọn Mô tả
-A, –show-all Tương đương -vET
-b, –number-nonblank Đánh số các dòng đầu ra không rỗng, ghi đè -n
-e Tương đương -vE
-E, –show-ends Hiển thị $ ở cuối mỗi dòng
-n, –number Đánh số tất cả các dòng đầu ra
-s, –squeeze-blank Loại bỏ các dòng trống lặp lại ở đầu ra
-t Tương đương -vT
-T, –show-tabs Hiển thị ký tự TAB dưới dạng ^I
-v, –show-nonprinting Sử dụng ký hiệu ^ và M-, trừ LFD và TAB

Hướng dẫn sử dụng đầy đủ luôn có thể xem bằng cách chạy:

man cat

stdin Và stdout Là Gì?

Điều này cần một chút giải thích riêng, nhưng vì lệnh cat rất đơn giản, nó là giới thiệu tốt cho các luồng chuẩn. Nhấn vào đây để xem tổng quan đầy đủ.

Đọc Tệp Ra Console (Bash) (stdout)

cat text.txt

Đơn giản vậy thôi – cat sẽ đọc tệp và xuất nội dung ra console để bạn xem.

Nội dung tệp đã được xuất qua stdout, mặc định gửi dữ liệu đến console, nhưng cũng có thể chuyển hướng vào chương trình khác.

Đọc Nội Dung Tệp Vào Chương Trình (qua stdin)

cat text.txt | less

Như bài viết về đầu vào chuẩn nêu rõ, đầu ra từ cat có thể được chuyển hướng đến đầu vào của các lệnh khác.

Lệnh trên dẫn nội dung của text.txt vào lệnh less.

Gộp Tệp

Với tên gọi của lệnh, tôi sẽ bị thiếu sót nếu không chỉ cho bạn cách dùng nó để gộp (nối) tệp:

cat file1 file2 > mergedfile

cat có thể đọc từ nhiều tệp, nên việc chuyển hướng đầu ra vào một tệp đơn sẽ tạo ra tệp có nội dung của tất cả các tệp đọc được nối tuần tự.