Menu
CoddyTech

Dùng đường ống với grep

Thuộc phần Kiến thức cơ bản trong hành trình Terminal của Coddy. Bài học 46 trên 82.

Lệnh grep trở nên đặc biệt mạnh mẽ khi kết hợp với pipe. Thay vì tìm kiếm trong một tệp, bạn có thể lọc đầu ra của bất kỳ lệnh nào để tìm chính xác nội dung mình cần.

Hãy tưởng tượng bạn muốn tìm một tệp cụ thể trong danh sách thư mục:

ls -l | grep "report"

Lệnh này liệt kê chi tiết tất cả các tệp, sau đó lọc để chỉ hiển thị những dòng có chứa "report". Bạn nhận được kết quả chính xác mà không cần tự dò qua mọi thứ.

Chuyển đầu ra qua grep có thể dùng với mọi lệnh tạo ra văn bản. Để tìm các tiến trình đang chạy liên quan đến một chương trình cụ thể:

ps aux | grep "python"

Bạn cũng có thể kết hợp grep với những lệnh khác đã học. Để đếm số dòng chứa một từ cụ thể:

cat logfile.txt | grep "error" | wc -l

Lệnh này đọc tệp, lọc các dòng có "error", rồi đếm số dòng đó. Các cờ grep bạn đã học trước đây cũng hoạt động tương tự trong đường ống: dùng -i để tìm kiếm không phân biệt chữ hoa chữ thường hoặc -v để loại trừ các kết quả khớp.

challenge icon

Thử thách

Dễ

Tệp access.log chứa các bản ghi truy cập máy chủ web. Dùng dấu pipe để lọc và đếm số yêu cầu có mã trạng thái lỗi 500.

Chạy một lệnh duy nhất để:

  • Dùng cat để đọc access.log
  • Dùng dấu pipe để chuyển kết quả sang grep nhằm lọc các dòng chứa 500
  • Dùng dấu pipe để chuyển kết quả sang wc -l nhằm đếm các dòng khớp

Gợi ý: Nối ba lệnh với nhau bằng ký hiệu |. Lệnh grep lọc đầu ra, còn wc -l đếm số dòng còn lại.

Tự làm thử

Terminal
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức cơ bản

Tự luyện tập: Playground Terminal