Xem các tùy chọn -F(chuỗi cố định, trái ngược với biểu thức chính quy) và -x(chính xác: khớp với toàn bộ dòng).
grep -Fx user1@example.com text_file
sẽ tương đương với:
grep '^user1@example\.com$' text_file
(hãy nhớ rằng đó .là một toán tử biểu thức chính quy phù hợp với bất kỳ ký tự nào).
Sử dụng -qtùy chọn nếu bạn chỉ muốn kiểm tra nếu có một dòng như vậy:
grep -Fxq user1@example.com text_file &&
echo yes, that address is in that file.
Nếu dòng để tìm kiếm và tên tệp là biến:
grep -Fxqe "$email" < "$file"
Hoặc là
grep -Fxq -- "$email" < "$file"
Bạn không muốn:
grep -Fxq "$email" "$file"
vì điều đó sẽ gây ra vấn đề nếu $emailhoặc $filebắt đầu với -.
Nếu tệp được sắp xếp (tốt nhất là tại địa phương hiện tại của bạn C), bạn có thể tăng tốc mọi thứ bằng cách sử dụng commthay vì grep:
printf '%s\n' user1@example.com | comm -12 - text_file
Lợi thế sẽ trở nên rõ ràng hơn khi bạn có một vài địa chỉ email cần kiểm tra (ví dụ trong một tệp được sắp xếp khác):
comm -12 text_file emails_to_check
sẽ nhanh hơn:
grep -Fxf emails_to_check text_file