Nội dung ban đầu của tệp input - trực tiếp bóng đá

Trong quá trình sử dụng công cụ dòng lệnh mạnh mẽ grep hàng ngày, có thể bạn sẽ gặp phải một vấn đề thú vị. Grep thường tự động nhận diện tệp là tệp nhị phân khi nó phát hiện ký tự đặc biệt '\000 NUL'. Khi đó, grep sẽ không thực hiện việc xử lý thêm nội dung của tệp nữa. Tuy nhiên, nếu bạn muốn bỏ qua điều này và vẫn tiếp tục tìm kiếm nội dung bên trong tệp, bạn có thể sử dụng các tùy chọn như grep -a hoặc grep --text.

Hãy cùng thử một thí nghiệm đơn giản để hiểu rõ hơn nhé!

Chúng ta sẽ tạo ra một đoạn mã PHP sau đây:

1<?php
2$content = file_get_contents('input.txt'); // Đọc nội dung từ input.txt
3$binary = "\0" . $content; // Thêm ký tự NUL vào đầu chuỗi
4file_put_contents('output.bin', $binary); // Lưu kết quả [những game nổ hũ uy tín](/post/68d7a7d1676e1ca6.html)  vào output.bin

Sau khi chạy đoạn mã trên, chúng ta sẽ thu được một tệp nhị phân the thao 24h ngoai hang anh mới tên là output.bin. Nội dung ban đầu của tệp input.txt rất đơn giản, chỉ chứa những dòng số sau:

11234512345

Tuy nhiên, khi chúng ta cố gắng sử dụng lệnh grep thông thường để tìm kiếm nội dung trong tệp output.bin, nó sẽ không trả về bất kỳ kết quả nào vì grep đã tự động coi đây là một tệp nhị phân. Để giải quyết vấn đề này, bạn cần sử dụng tùy chọn -a hoặc --text của lệnh grep. Điều này sẽ hướng dẫn grep xử lý tệp nhị phân như một tệp văn bản bình thường.

Ví dụ, thay vì viết lệnh:

1grep "12345" output.bin

Bạn nên dùng lệnh sau:

1grep -a "12345" output.bin

Hoặc:

1grep --text "12345" output.bin

Nhờ vậy, nội dung mà bạn đang tìm kiếm sẽ được hiển thị chính xác, ngay cả khi nó nằm trong một tệp có định dạng nhị phân. Đây là một mẹo nhỏ nhưng vô cùng hữu ích khi làm việc với các loại tệp phức tạp hơn!

Hy vọng bài viết này giúp bạn hiểu rõ hơn cách sử dụng grep hiệu quả trong nhiều tình huống khác nhau!