Xuất file với cat, tee, head và tail

Một phần của tài liệu ĐẠI HỌC THĂNG LONG BỘ MÔN TIN HỌC THỰC HÀNH LINUX (Trang 48 - 49)

4. Lọc (Filters)

4.1.1. Xuất file với cat, tee, head và tail

Các file filter đơn giản nhất chỉ đơn thuần xuất ra nội dung của file. Nó đọc các dòng dữ liệu của file và xuất ra chính nội dung đó. Bạn đã biết hai lệnh cattee để hiển thị nội dung file tuy nhiên bạn có thể không biết đó chính là các filter. Lệnh lọc cat nhận đầu vào và gửi dữ liệu từ đầu vào đó ra STDOUT là màn hình. Còn lệnh lọc tee thì copy một bản gởi ra STDOUT còn một bản khác thì gửi đến một file nào đó.

Có thể kết hợp các filter với điều hướng hoặc tuyến dẫn. Ví dụ:

$ cat mydata | lpr $ cat mydata > filenew

Chú ý: Lệnh more cũng dùng để hiển thị nội dung file nhưng nó không là một filter. Ta cần phân biệt giữa lọc và các tiện ích hướng thiết bị khác (device-oriented) như lpr hay

more. Filter gửi kết quả ra STDOUT còn các tiện ích hướng thiết bị thì nhận dữ liệu từ STDIN và gửi kết quả ra thiết bị. Với lpr thì thiết bị là máy in còn với lệnh more thì thiết bị là màn hình. Các tiện ích hướng thiết bị có thể nhận đầu vào từ một filter song nó chỉ có thểđưa kết quả ra thiết bị.

Ví dụ:

$ cat file1 file2 | more $ cat file1 file2 | lpr $ cat file1 file2 > file3

Hai lệnh cuối tương đương với:

$ cat file1 file2 | tee file3 | lpr

ƒ Hiển thị phần đầu hoặc cuối file: Lệnh head, tail

Thay vì hiển thị toàn bộ nội dung file, ta có thể chỉ hiển phần đầu hoặc phần cuối của nó thông qua filter head tail.

Ví dụ:

$ cat preface

Xin chao, toi la dong 1. Con toi la dong 2. Toi la dong 3.

Toi la dong 4, xin chao. Con toi la dong 5.

Xin chao, toi la dong 6.

Toi la dong 7, dong cuoi cung.

$ head -3 preface

Xin chao, toi la dong 1. Con toi la dong 2. Toi la dong 3.

$ tail -2 preface

Xin chao, toi la dong 6.

Toi la dong 7, dong cuoi cung.

Tuỳ chọn của lệnh head tail là số dòng cần hiển thị. Nếu không có tuỳ chọn thì mặc định số dòng hiển thị là 10.

Một phần của tài liệu ĐẠI HỌC THĂNG LONG BỘ MÔN TIN HỌC THỰC HÀNH LINUX (Trang 48 - 49)