Computer >> Máy Tính >  >> Lập trình >> Lập trình BASH

Lệnh Cat trong Linux - Giải thích kết hợp với các ví dụ về Bash

Cat trong Linux là viết tắt của từ nối (để hợp nhất mọi thứ lại với nhau) và là một trong những lệnh Linux linh hoạt và hữu ích nhất. Mặc dù không hoàn toàn dễ thương và âu yếm như một con mèo thật, nhưng cat Linux lệnh có thể được sử dụng để hỗ trợ một số hoạt động sử dụng chuỗi, tệp và đầu ra.

Lệnh cat có ba mục đích chính liên quan đến tệp văn bản:

  • Tạo
  • Đọc / Hiển thị
  • Cập nhật / Sửa đổi

Chúng ta sẽ lần lượt xem qua từng thứ này để hiển thị các lệnh và tùy chọn liên quan đến từng thao tác.

Bắt đầu

Để bắt đầu, hãy tạo một vài tệp có tên foo.txt và spam.txt.

Hãy bắt đầu bằng cách tạo foo.txt bằng lệnh cat > foo.txt từ dòng lệnh Linux.

Cảnh báo:Nếu đã có một tệp có tên foo.txt, thì cat sử dụng toán tử> SẼ ghi đè nó.

Từ đây, lời nhắc sẽ hiển thị một dòng mới cho phép chúng ta nhập văn bản mà chúng ta muốn. Đối với ví dụ này, chúng tôi sẽ sử dụng:

FILE 1
foo
bar
baz

Để quay lại dòng lệnh và tạo tệp văn bản, chúng ta sử dụng CTRL + D.

Bây giờ, hãy tạo spam.txt với cat > spam.txt và đưa vào những thứ sau:

FILE 2
spam
ham
eggs

Nếu chúng tôi muốn nối thêm hoặc thêm văn bản vào các tệp này, chúng tôi sẽ sử dụng cat >> FILENAME và nhập văn bản chúng tôi muốn sử dụng.

Lưu ý rằng toán tử>> được sử dụng để thêm vào thay vì toán tử>.

Thay vì phải mở trình soạn thảo văn bản, chúng tôi có thể tạo tệp văn bản nhanh chóng và đơn giản từ dòng lệnh, tiết kiệm thời gian và công sức.

Chìa khóa rút ra từ phần này là chúng tôi sử dụng cat > FILENAME để tạo hoặc ghi đè tệp. Ngoài ra, chúng ta có thể sử dụng cat >> FILENAME để nối vào một tệp đã có ở đó. Sau đó, sau khi nhập văn bản mà chúng tôi muốn, chúng tôi sử dụng CTRL + D để thoát khỏi trình chỉnh sửa, quay lại dòng lệnh và tạo tệp.

Đọc Cầu vồng

Bây giờ chúng tôi đã tạo ra thứ gì đó, hãy xem những gì chúng tôi đã tạo ra.

Lưu ý rằng chúng ta không có toán tử> hoặc>> trong lệnh sau, chỉ có cat và tên tệp.

Lệnh cat foo.txt sẽ hiển thị như sau:

FILE 1
foo
bar
baz

Vì vậy, cat foo.txt sẽ cho phép chúng tôi đọc tệp, nhưng hãy xem chúng tôi có thể làm gì khác.

Giả sử chúng tôi muốn tìm hiểu xem một tệp chúng tôi đang làm việc có bao nhiêu dòng. Đối với tùy chọn -n này rất hữu ích.

Với lệnh cat -n foo.txt chúng ta có thể xem tệp của mình dài bao nhiêu:

  1  FILE 1
  2  foo
  3  bar
  4  baz

Với -n, chúng ta có thể biết được tệp chúng ta đang làm việc có bao nhiêu dòng. Điều này có thể hữu ích khi chúng ta lặp lại một tệp có độ dài cố định.

Kết hợp tệp

Được rồi, chúng ta đã thấy rằng con mèo có thể tạo và hiển thị các tệp, nhưng còn việc nối (kết hợp) chúng thì sao?

Đối với ví dụ này, chúng tôi sẽ sử dụng tệp foo.txt và spam.txt. Nếu chúng ta muốn làm quen, chúng ta có thể xem nội dung của cả hai tệp cùng một lúc. Chúng tôi sẽ sử dụng lại lệnh cat, lần này sử dụng cat foo.txt spam.txt .

cat foo.txt spam.txt kết quả như sau:

FILE 1
foo
bar
baz
FILE 2
spam
ham
eggs

Lưu ý rằng phần trên chỉ HIỂN THỊ hai tệp. Tại thời điểm này, chúng tôi vẫn chưa nối chúng vào một tệp mới.

Để nối các tệp thành một tệp mới, chúng tôi muốn sử dụng cat foo.txt spam.txt > fooSpam.txt cung cấp cho chúng tôi kết quả vào một tệp mới fooSpam.txt.

Sử dụng cat fooSpam.txt xuất những thông tin sau đến thiết bị đầu cuối:

FILE 1
foo
bar
baz
FILE 2
spam
ham
eggs

Lệnh này cũng hữu ích khi chúng ta muốn nối nhiều hơn hai tệp vào một tệp mới.

Điểm chung ở đây là chúng ta có thể xem nhiều tệp với cat FILENAME1 FILENAME 2 .

Hơn nữa, chúng ta có thể nối nhiều tệp thành một tệp bằng lệnh cat FILENAME1 FILENAME 2 > FILENAME3 .

Những hoạt động thú vị khác có thể làm với (các) mèo

Giả sử chúng tôi đang làm việc với một tệp và chúng tôi liên tục gặp lỗi vì một số lý do trước khi kết thúc tệp - và có vẻ như nó có thể có nhiều dòng hơn chúng tôi mong đợi.

Để điều tra tệp thêm một chút và có thể giải quyết vấn đề của chúng ta, chúng ta có thể sử dụng công tắc -A. Tùy chọn -A sẽ hiển thị cho chúng ta nơi các dòng kết thúc bằng $, nó sẽ hiển thị cho chúng ta các ký tự tab bằng ^ I và nó cũng hiển thị các ký tự không in khác.

Nếu chúng ta đang xem ví dụ về tệp văn bản không in được với cat nonPrintExample.txt chúng ta có thể nhận ra một cái gì đó như thế này:





       





Điều này được nhưng có thể không cho chúng tôi biết câu chuyện đầy đủ về một ký tự hoặc chuỗi có thể gây ra sự cố cho chúng tôi.

Trong khi cat -A nonPrintExample.txt có thể cung cấp cho chúng tôi kết quả hữu ích hơn:

^I^I$
$
^L$
$
^G^H^H^H^Y^I^N^O^P^@$
^@^@^[g^[f^[d^[g^[6^[5^[4^[6^[=$
$
$
^X$

Ở đây, chúng tôi có được sự trình bày rõ ràng hơn về những gì có thể xảy ra giữa các tab, nguồn cấp dữ liệu dòng, trả về và các ký tự khác.

Điều cần rút ra ở đây là con mèo -A FILENAME có thể cho chúng tôi biết chi tiết chuyên sâu hơn về tệp mà chúng tôi đang làm việc.

Bài viết này sẽ cung cấp cho bạn một cái nhìn tổng quan tốt về lệnh mèo, những gì nó có thể làm và chức năng của nó.