Tôi có câu hỏi về grep
và egrep
trong unix
.Sự khác biệt giữa egrep và grep
Vì gần đây tôi đang nghiên cứu shell commands
trong unix
, tôi muốn biết sự khác biệt giữa grep và egrep là gì.
Tôi thấy chúng tôi có thể sử dụng grep và egrep với cụm từ thông dụng. Tuy nhiên, tôi đã tìm thấy điều gì đó khác biệt giữa hai lệnh sau:
Đối với ^
, grep và egrep có cùng ý nghĩa là tìm các dòng chứa các nội dung nhất định ngay từ đầu.
Tuy nhiên, đối |
, grep, mà không slash lại trước |
, có nghĩa là nhân vật của |
, và nếu tôi đặt một dấu gạch chéo lại trước mặt nó, nó quay vào nó ý nghĩa đặc biệt của việc tìm kiếm các dòng chứa một trong hai thứ ở phía trước và đằng sau nó. NHƯNG, cho egrep, nó là ngược lại. |
có ý nghĩa sau của grep và \|
có nghĩa cũ của grep khi sử dụng nó.
Ai đó có thể giải thích lý do tại sao?
Xin chào, cảm ơn bạn rất nhiều. Nó rất rõ ràng. Tôi thực sự, thực sự đánh giá cao nó. –
Giải thích hay. Chỉ có điều tôi sẽ thêm là các biểu thức chính quy cơ bản * làm * nhận dạng các ký hiệu meta như '+', '?', '|', V.v., nhưng bạn phải thoát chúng (tiền tố '\') để bật chúng lên (trong khi với biểu thức chính quy mở rộng, bạn phải thoát khỏi chúng để tắt chúng đi.) Vì vậy, "grep -E 'a | b'" giống như "grep" a \ | b '"(khớp với a hoặc b) và" grep -E 'a \ | b' "giống như" grep 'a | b' "(chỉ khớp với chuỗi 'a | b') –
Trong' egrep', '?', '+' '{' ' | '' ('') 'là các ký hiệu biểu thức chính quy. – Hunger