Công cụ 22/09/2026 5 phút

grep và regex: vì sao "ERROR|WARN" không chạy, và ba phương ngữ BRE/ERE/PCRE

Ai cũng dùng grep, nhưng ít người biết grep có tới ba phương ngữ regex — và dùng nhầm là nguyên nhân của cái bẫy kinh điển: grep "ERROR|WARN" không tìm "ERROR hoặc WARN". Bài này chạy grep thật trên log mẫu: đếm và đảo, BRE vs ERE, trích IP bằng -o, lấy giá trị sau user= bằng PCRE \K, và tìm từ lặp bằng backreference.

Lập trình 22/09/2026 6 phút

Regex thực chiến: phân tích log bằng grep -P, ripgrep và awk — và khi nào nên dừng

Regex sáng nhất khi mổ log. Bài này đo thật trên 500 dòng access.log: grep -oP trích IP và status code, pipe qua sort|uniq -c xếp hạng (200 chiếm 359, 404 chiếm 75), ripgrep lọc request chậm và POST lỗi, awk tính latency trung bình 405ms. Và ripgrep quét 40MB nhanh gấp đôi grep. Kèm nguyên tắc quan trọng nhất và tổng kết cả loạt 12 phần.