Lấy ví dụ, lệnh này:
find . -regex ".*\.\(cpp\|h\)"
Điều này sẽ tìm thấy tất cả các tệp .h và .cpp trong thư mục của bạn. Ký tự dấu chấm '.' trong các biểu thức thông thường thường có nghĩa là "bất kỳ nhân vật". Để làm cho nó chỉ khớp với một khoảng thời gian thực tế, bạn phải thoát nó bằng ký tự dấu gạch chéo ngược '\'.
Trong trường hợp này, được cho một nhân vật có ý nghĩa đặc biệt, bạn phải thoát khỏi nó để có được nhân vật thực tế mà nó đại diện.
Bây giờ, lấy dấu ngoặc đơn và thanh "hoặc", lần lượt là các ký tự '(', ')' và '|'. Chúng cũng có ý nghĩa đặc biệt, được sử dụng để nhóm các biểu thức thông thường. Tuy nhiên, để có được ý nghĩa đặc biệt, các ký tự phải được thoát bằng cách sử dụng dấu gạch chéo ngược! Không có dấu gạch chéo ngược, các ký tự có ý nghĩa của ký tự thực mà nó đại diện.
Tại sao vậy '.' đối xử khác với '(', ')' và '|'?