\ B có nghĩa là gì trong một mẫu grep?


12

Lệnh này làm gì?

grep "\bi\b" linux.txt

Nó đang tìm kiếm cái gì vậy?


Có thể rõ ràng, nhưng chỉ trong trường hợp không phải, đây là một lưu ý về sự khác biệt (đáng kể) giữa \<...\>\b...\b: `Bạn có thể nhận được kết quả bất ngờ nếu bạn giả sử hai mẫu này hoạt động giống nhau ... xem liên kết này
Peter. Ô

Câu trả lời:


13

\b trong một biểu thức chính quy có nghĩa là "ranh giới từ".

Với lệnh grep này, bạn đang tìm kiếm tất cả các từ itrong tệp linux.txt. icó thể ở đầu một dòng hoặc ở cuối hoặc giữa hai ký tự khoảng trắng trong một câu.


có thể là lúc bắt đầu hoặc cuối cùng ?? không phải là chỉ giữa không gian ??
amyassin

1
Tôi không tìm thấy thêm chi tiết về điều đó. Nhưng thử bằng tay với một tệp chứa các dòng "i foo" và "bar i", biểu thức chính quy được cung cấp cho lệnh grep ở trên phù hợp với cả hai.
uloBasEI

1
Chính xác hơn, không chỉ không gian , mà bất kỳ nhân vật không từ nào . Cũng giống như -w --word-regexpchuyển đổi nào : grep -w "i" linux.txt. Ví dụ: một dòng như "<i> in nghiêng </ i>" cũng khớp.
manatwork

0

Các \b(ranh giới từ) neo có thể được sử dụng thay cho \<\>để biểu thị đầu hoặc cuối của một từ.

Nếu đây là nội dung của một file:

Hi
this
is test file
to carry out few regular expressions

Sau đó:

$ grep -e '\ breg' tệp
để thực hiện một vài biểu thức reg ular
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.