1. Tổng quan.
Bạn có thể đọc nội dung của một file .gz mà không cần giải nén bằng cách sử dụng lệnh zcat
, zless
hoặc zgrep
trên hệ thống Unix/Linux.
Dưới đây là cách sử dụng các lệnh này:
zcat: Lệnh này sẽ in nội dung của file ra stdout (thông thường là terminal). Bạn có thể sử dụng nó như sau:
zcat ceph.log.1.gz
zless: Lệnh này cho phép bạn xem và cuộn qua nội dung của file mà không cần giải nén. Bạn có thể sử dụng nó như sau:
zless ceph.log.1.gz
zgrep: Lệnh này cho phép bạn tìm kiếm một chuỗi hoặc biểu thức chính quy trong file .gz mà không cần giải nén. Bạn có thể sử dụng nó như sau:
zgrep "search_string" ceph.log.1.gz
Thay “search_string” bằng chuỗi hoặc biểu thức chính quy bạn muốn tìm kiếm.
2. Tham số thường sử dụng.
Dưới đây là một số tham số thường được sử dụng với các lệnh zcat
, zless
, và zgrep
:
- zcat:
-f
: Đọc các file nén và không nén.-n
: Hiển thị số dòng trước mỗi dòng đầu ra.
- zless:
-N
: Hiển thị số dòng trước mỗi dòng.-S
: Cắt các dòng dài thay vì gấp dòng.-P
: Đặt chế độ thanh trạng thái.
- zgrep:
-i
: Tìm kiếm không phân biệt chữ hoa chữ thường.-v
: In ra tất cả các dòng không khớp với mẫu.-r
hoặc-R
: Tìm kiếm đệ quy.-l
: Chỉ in ra tên của các file có chứa mẫu.-n
: Hiển thị số dòng trước mỗi dòng khớp.
Ví dụ sử dụng:
zcat -f ceph.log.1.gz
zless -N ceph.log.1.gz
zgrep -i "search_string" ceph.log.1.gz
Lưu ý: Các tham số này có thể kết hợp với nhau để tạo ra các lệnh phức tạp hơn.
3. Một số mẹo sử dụng với lệnh zcat
, zless
và zgrep
.
Có một số “trick” bạn có thể sử dụng để tối ưu hóa việc làm việc với các lệnh zcat
, zless
, và zgrep
. Dưới đây là một số ví dụ:
zcat:
Kết hợp với head
hoặc tail
để xem một số dòng đầu tiên hoặc cuối cùng của tệp nén:
zcat ceph.log.1.gz | head -n 10
zcat ceph.log.1.gz | tail -n 10
- zless:
- Sử dụng các phím tắt trong
zless
để di chuyển nhanh hơn. Ví dụ,g
để đi đến đầu tệp,G
để đi đến cuối tệp,/
để tìm kiếm, vàn
để tìm kiếm tiếp theo.
- Sử dụng các phím tắt trong
- zgrep:
- Kết hợp với
cut
,awk
, hoặcsed
để xử lý dữ liệu đầu ra. Ví dụ, để tìm kiếm một chuỗi và sau đó cắt bỏ một số cột:
- Kết hợp với
zgrep "search_string" ceph.log.1.gz | cut -d' ' -f1,2,3
Sử dụng -c
để đếm số lượng dòng khớp:
zgrep -c "search_string" ceph.log.1.gz
Sử dụng -l
để liệt kê tất cả các tệp chứa chuỗi tìm kiếm:
zgrep -l "search_string" *.gz
Nhớ rằng bạn có thể kết hợp các lệnh và tham số này theo nhiều cách khác nhau để phù hợp với nhu cầu cụ thể của bạn.