Đây là lệnh pcregrep có thể được chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
pcregrep - một grep với các biểu thức chính quy tương thích với Perl.
SYNOPSIS
pcregrep [tùy chọn] [Dài tùy chọn] [mẫu] [đường dẫn1 path2 ...] zpcregrep [tùy chọn] [Dài
tùy chọn] [mẫu] [tệp1 tệp2 ...]
MÔ TẢ
pcregrep tìm kiếm các tệp cho các mẫu ký tự, theo cách giống như các lệnh grep khác,
nhưng nó sử dụng thư viện biểu thức chính quy PCRE để hỗ trợ các mẫu tương thích
với các biểu thức chính quy của Perl 5. Xem pcresyntax(3) để có một bản tóm tắt tham khảo nhanh về
cú pháp mẫu, hoặc mô hình pcrepattern(3) để biết mô tả đầy đủ về cú pháp và ngữ nghĩa của
biểu thức chính quy mà PCRE hỗ trợ.
Các mẫu, dù được cung cấp trên dòng lệnh hay trong một tệp riêng biệt, đều được cung cấp mà không có
dấu phân cách. Ví dụ:
pcregrep Thứ Năm / etc / motd
Nếu bạn cố gắng sử dụng dấu phân cách (ví dụ: bằng cách bao quanh một mẫu bằng dấu gạch chéo, như
phổ biến trong các tập lệnh Perl), chúng được hiểu là một phần của mẫu. Báo giá có thể
khóa học được sử dụng để phân định các mẫu trên dòng lệnh vì chúng được diễn giải bởi
shell và thực sự cần phải có dấu ngoặc kép nếu một mẫu chứa khoảng trắng hoặc shell
siêu ký tự.
Đối số đầu tiên theo sau bất kỳ cài đặt tùy chọn nào được coi là một mẫu duy nhất
phù hợp khi không -e cũng không -f là quà tặng. Ngược lại, khi một hoặc cả hai tùy chọn này
được sử dụng để chỉ định các mẫu, tất cả các đối số được coi là tên đường dẫn. Ít nhất một trong số -e,
-fhoặc một mẫu đối số phải được cung cấp.
Nếu không có tệp nào được chỉ định, pcregrep đọc đầu vào tiêu chuẩn. Đầu vào tiêu chuẩn cũng có thể
được tham chiếu bởi một tên bao gồm một dấu gạch ngang. Ví dụ:
pcregrep some-pattern / file1 - / file3
Theo mặc định, mỗi dòng khớp với một mẫu được sao chép sang đầu ra tiêu chuẩn và nếu
có nhiều hơn một tệp, tên tệp được xuất ở đầu mỗi dòng, theo sau
bằng dấu hai chấm. Tuy nhiên, có những tùy chọn có thể thay đổi cách pcregrep cư xử. Trong
đặc biệt, -M tùy chọn giúp bạn có thể tìm kiếm các mẫu kéo dài dòng
ranh giới. Những gì xác định một đường ranh giới được kiểm soát bởi -N (--dòng mới) Lựa chọn.
Dung lượng bộ nhớ được sử dụng để đệm các tệp đang được quét được kiểm soát bởi
tham số có thể được thiết lập bởi - kích thước bộ đệm Lựa chọn. Giá trị mặc định cho điều này
tham số được chỉ định khi pcregrep được xây dựng, với giá trị mặc định là 20K. Một khối
của bộ nhớ gấp ba lần kích thước này được sử dụng (để cho phép lưu vào bộ đệm "trước" và "sau"
dòng). Lỗi xảy ra nếu một dòng làm tràn bộ đệm.
Các mẫu không được dài hơn 8K hoặc BUFSIZ byte, tùy theo giá trị nào lớn hơn. BUFSIZ là
được định nghĩa trong . Khi có nhiều hơn một mẫu (được chỉ định bằng cách sử dụng -e
và / hoặc -f), mỗi mẫu được áp dụng cho mỗi dòng theo thứ tự mà chúng được xác định,
ngoại trừ rằng tất cả -e các mẫu được thử trước khi -f hoa văn.
Theo mặc định, ngay sau khi một mẫu khớp với một dòng, không có mẫu nào khác được xem xét.
Tuy nhiên, nếu --màu sắc (Hoặc --màu sắc) được sử dụng để tô màu cho các chuỗi con phù hợp, hoặc nếu --chỉ một-
phù hợp, - bù trừ tệp tin, hoặc là - hiệu số dòng được sử dụng để xuất chỉ một phần của dòng
phù hợp (được hiển thị theo nghĩa đen hoặc dưới dạng bù đắp), quá trình quét sẽ tiếp tục ngay lập tức
theo sau trận đấu, để có thể tìm thấy các kết quả phù hợp hơn trên cùng một dòng. Nếu có
nhiều mẫu, tất cả chúng đều được thử ở phần còn lại của dòng, nhưng các mẫu
theo một trong những phù hợp không được thử ở phần trước của dòng.
Hành vi này có nghĩa là thứ tự trong đó nhiều mẫu được chỉ định có thể ảnh hưởng đến
đầu ra khi một trong các tùy chọn trên được sử dụng. Đây không còn là hành vi giống như
GNU grep, hiện quản lý để hiển thị các kết quả phù hợp trước đó cho các mẫu sau (miễn là
không có sự chồng chéo).
Các mẫu có thể khớp với một chuỗi rỗng được chấp nhận, nhưng các mẫu khớp với chuỗi rỗng thì không bao giờ
được công nhận. Một ví dụ là mẫu "(super)? (Man)?", Trong đó tất cả các thành phần là
không bắt buộc. Mẫu này tìm thấy tất cả các lần xuất hiện của cả "super" và "man"; đầu ra khác nhau
khỏi so khớp với "super | man" khi chỉ các chuỗi con phù hợp được hiển thị.
Nếu LC_ALL or LC_CTYPE biến môi trường được đặt, pcregrep sử dụng giá trị để đặt một
ngôn ngữ khi gọi thư viện PCRE. Các --ngôn ngữ tùy chọn có thể được sử dụng để ghi đè điều này.
zpcregrep là một tập lệnh trình bao bọc cho phép pcregrep hoạt động trên các tệp nén gzip.
HỖ TRỢ CHO NÉN CÁC TẬP TIN
Có thể biên dịch pcregrep để nó sử dụng libz or libbz2 để đọc các tệp có
tên kết thúc bằng .gz or . Bz2, tương ứng. Bạn có thể tìm hiểu xem hệ nhị phân của mình có hỗ trợ hay không
cho một hoặc cả hai loại tệp này bằng cách chạy nó với --Cứu giúp Lựa chọn. Nếu
hỗ trợ thích hợp không có, các tệp được coi là văn bản thuần túy. Đầu vào tiêu chuẩn là
luôn luôn được đối xử như vậy.
nhị phân CÁC TẬP TIN
Theo mặc định, tệp chứa byte 1024 nhị phân trong XNUMX byte đầu tiên là
được xác định là một tệp nhị phân và được xử lý đặc biệt. (GNU grep cũng xác định nhị phân
các tệp theo cách này.) Xem --binary-tệp tùy chọn cho một phương tiện thay đổi cách
các tệp nhị phân được xử lý.
LỰA CHỌN
Thứ tự xuất hiện của một số tùy chọn có thể ảnh hưởng đến kết quả đầu ra. Ví dụ, cả hai
-h và -l các tùy chọn ảnh hưởng đến việc in tên tệp. Tùy điều kiện nào đến sau trong lệnh
dòng sẽ có hiệu lực. Tương tự, ngoại trừ những điểm được ghi chú bên dưới, nếu một tùy chọn
được đưa ra hai lần, cài đặt sau này sẽ được sử dụng. Các giá trị số cho các tùy chọn có thể được theo sau bởi
K hoặc M, để biểu thị phép nhân với 1024 hoặc 1024 * 1024 tương ứng.
-- Điều này chấm dứt danh sách các tùy chọn. Sẽ rất hữu ích nếu mục tiếp theo trên
dòng lệnh bắt đầu bằng dấu gạch ngang nhưng không phải là một tùy chọn. Điều này cho phép
xử lý các mẫu và tên tệp bắt đầu bằng dấu gạch ngang.
-A con số, - after-context =con số
Đầu ra con số dòng ngữ cảnh sau mỗi dòng đối sánh. Nếu tên tệp và / hoặc
số dòng đang được xuất, dấu gạch ngang phân cách được sử dụng thay vì dấu hai chấm cho
các dòng ngữ cảnh. Một dòng có chứa "-" là đầu ra giữa mỗi nhóm dòng,
trừ khi chúng thực tế liền kề trong tệp đầu vào. Giá trị của con số is
dự kiến là tương đối nhỏ. Tuy vậy, pcregrep đảm bảo có tới 8K
của văn bản sau có sẵn cho đầu ra ngữ cảnh.
-a, --bản văn
Coi các tệp nhị phân là văn bản. Điều này tương đương với --binary-tệp=văn bản.
-B con số, --before-context =con số
Đầu ra con số dòng ngữ cảnh trước mỗi dòng đối sánh. Nếu tên tệp và / hoặc
số dòng đang được xuất, dấu gạch ngang phân cách được sử dụng thay vì dấu hai chấm cho
các dòng ngữ cảnh. Một dòng có chứa "-" là đầu ra giữa mỗi nhóm dòng,
trừ khi chúng thực tế liền kề trong tệp đầu vào. Giá trị của con số is
dự kiến là tương đối nhỏ. Tuy vậy, pcregrep đảm bảo có tới 8K
của văn bản trước đó có sẵn cho đầu ra ngữ cảnh.
--binary-files =lời
Chỉ định cách xử lý tệp nhị phân. Nếu từ là "nhị phân" (
mặc định), đối sánh mẫu được thực hiện trên các tệp nhị phân, nhưng đầu ra duy nhất là
"Tập tin nhị phân đối sánh "khi đối sánh thành công. Nếu từ là" văn bản ", thì
tương đương với -a or --bản văn tùy chọn, các tệp nhị phân được xử lý giống nhau
như bất kỳ tệp nào khác. Trong trường hợp này, khi một trận đấu thành công, kết quả đầu ra có thể là
rác nhị phân, có thể gây ra các hiệu ứng khó chịu nếu được gửi đến một thiết bị đầu cuối. Nếu từ
là "không khớp", tương đương với -I tùy chọn, các tệp nhị phân không
được xử lý ở tất cả; chúng được cho là không được quan tâm.
--buffer-size =con số
Đặt tham số kiểm soát lượng bộ nhớ được sử dụng để lưu vào bộ đệm các tệp
đang được quét.
-C con số, --context =con số
Đầu ra con số dòng ngữ cảnh cả trước và sau mỗi dòng so khớp. Cái này
tương đương với việc thiết lập cả hai -A và -B đến cùng một giá trị.
-c, --đếm
Không xuất các dòng riêng lẻ từ các tệp đang được quét; thay thế
xuất ra số dòng mà nếu không sẽ được hiển thị. Nếu không có dòng nào
được chọn, số XNUMX là đầu ra. Nếu một số tệp đang được quét,
số lượng là đầu ra cho mỗi người trong số họ. Tuy nhiên, nếu --files-with-match Tùy chọn là
cũng được sử dụng, chỉ những tệp có số lượng lớn hơn XNUMX mới được liệt kê. Khi nào
-c Được sử dụng, -A, -Bvà -C các tùy chọn bị bỏ qua.
--màu sắc, --màu sắc
Nếu tùy chọn này được cung cấp mà không có bất kỳ dữ liệu nào, nó tương đương với "--colour = auto".
Nếu dữ liệu là bắt buộc, nó phải được cung cấp trong cùng một mục shell, được phân tách bằng dấu
dấu bằng.
- màu sắc =giá trị, --color =giá trị
Tùy chọn này chỉ định các phần của một dòng khớp trong những trường hợp nào
một mẫu phải được tô màu trong đầu ra. Theo mặc định, đầu ra không
màu sắc rực rỡ. Giá trị (là tùy chọn, xem ở trên) có thể là "không bao giờ", "luôn luôn" hoặc
"tự động". Trong trường hợp thứ hai, việc tô màu chỉ xảy ra nếu đầu ra tiêu chuẩn là
được kết nối với một thiết bị đầu cuối. Nhiều tài nguyên hơn được sử dụng khi bật màu,
bởi vì pcregrep phải tìm kiếm tất cả các kết quả phù hợp có thể có trong một dòng, không chỉ một,
để tô màu tất cả.
Màu được sử dụng có thể được chỉ định bằng cách đặt biến môi trường
PCREGREP_COLOUR hoặc PCREGREP_COLOR. Giá trị của biến này phải là một chuỗi
của hai số, được phân tách bằng dấu chấm phẩy. Chúng được sao chép trực tiếp vào
chuỗi điều khiển để thiết lập màu trên thiết bị đầu cuối, vì vậy bạn có trách nhiệm
đảm bảo rằng chúng có ý nghĩa. Nếu cả hai biến môi trường đều không được đặt,
mặc định là "1; 31", màu đỏ.
-D hoạt động, --devices =hoạt động
Nếu một đường dẫn đầu vào không phải là một tệp thông thường hoặc một thư mục, thì "action" chỉ định cách nó
sẽ được xử lý. Các giá trị hợp lệ là "đọc" (mặc định) hoặc "bỏ qua" (âm thầm
bỏ qua đường dẫn).
-d hoạt động, --directories =hoạt động
Nếu đường dẫn đầu vào là một thư mục, thì "action" chỉ định cách nó được xử lý.
Các giá trị hợp lệ là "đọc" (giá trị mặc định trong môi trường không phải Windows, cho
khả năng tương thích với GNU grep), "recurse" (tương đương với -r tùy chọn) hoặc "bỏ qua"
(bỏ qua đường dẫn mặc định trong môi trường Windows). Trong "đã đọc"
trường hợp, các thư mục được đọc như thể chúng là các tệp thông thường. Trong một số hoạt động
hệ thống ảnh hưởng của việc đọc một thư mục như thế này là một kết thúc ngay lập tức của tệp;
ở những người khác, nó có thể gây ra lỗi.
-e Belt Hold, --regex =Belt Hold, --regexp =Belt Hold
Chỉ định một mẫu sẽ phù hợp. Tùy chọn này có thể được sử dụng nhiều lần theo thứ tự
để chỉ định một số mẫu. Nó cũng có thể được sử dụng như một cách để chỉ định một
mẫu bắt đầu bằng dấu gạch nối. Khi nào -e được sử dụng, không có mẫu đối số nào được sử dụng
từ dòng lệnh; tất cả các đối số được coi là tên tệp. Không có
giới hạn số lượng các mẫu. Chúng được áp dụng cho từng dòng theo thứ tự trong
mà chúng được xác định cho đến khi một đối sánh.
If -f được sử dụng với -e, các mẫu dòng lệnh được khớp trước, sau đó là
các mẫu từ (các) tệp, độc lập với thứ tự trong đó các tùy chọn này
Được xác định. Lưu ý rằng sử dụng nhiều -e không giống như một mẫu đơn lẻ
với các lựa chọn thay thế. Ví dụ: X | Y tìm ký tự đầu tiên trong dòng
X hoặc Y, trong khi nếu hai mẫu được đưa ra riêng biệt, với X trước, pcregrep
tìm X nếu nó hiện diện, ngay cả khi nó đứng sau Y trong dòng. Nó chỉ tìm thấy Y nếu
không có X trong dòng. Điều này chỉ quan trọng nếu bạn đang sử dụng -o or --màu sắc
để hiển thị (các) phần của dòng phù hợp.
--loại trừ=Belt Hold
Các tệp (nhưng không phải thư mục) có tên khớp với mẫu sẽ bị bỏ qua mà không có
đang được xử lý. Điều này áp dụng cho tất cả các tệp, cho dù được liệt kê trên dòng lệnh,
thu được từ - danh sách tệphoặc bằng cách quét một thư mục. Mẫu là một PCRE
biểu thức chính quy và được so khớp với thành phần cuối cùng của tên tệp,
không phải toàn bộ con đường. Các -F, -wvà -x tùy chọn không áp dụng cho mẫu này.
Tùy chọn có thể được cung cấp bất kỳ số lần nào để chỉ định nhiều
các mẫu. Nếu một tên tệp phù hợp với cả hai --bao gồm và một --loại trừ mô hình, nó
bị loại trừ. Không có hình thức ngắn cho tùy chọn này.
--exclude-from =tên tập tin
Coi mỗi dòng không trống của tệp là dữ liệu cho một --loại trừ Lựa chọn. Gì
tạo thành một dòng mới khi đọc tệp là mặc định của hệ điều hành.
--dòng mới tùy chọn này không có hiệu lực đối với tùy chọn này. Tùy chọn này có thể được cung cấp nhiều hơn
nhiều lần để chỉ định một số tệp để đọc.
--loại trừ-dir=Belt Hold
Các thư mục có tên khớp với mẫu sẽ bị bỏ qua mà không được xử lý,
bất kể cài đặt của --đệ quy Lựa chọn. Điều này áp dụng cho tất cả các thư mục,
cho dù được liệt kê trên dòng lệnh, lấy từ - danh sách tệphoặc bằng cách quét
thư mục mẹ. Mẫu là một biểu thức chính quy PCRE và được đối sánh
chống lại thành phần cuối cùng của tên thư mục, không phải toàn bộ đường dẫn. Các -F,
-wvà -x tùy chọn không áp dụng cho mẫu này. Tùy chọn có thể được đưa ra bất kỳ
số lần để chỉ định nhiều hơn một mẫu. Nếu một thư mục
phù hợp với cả hai - bao gồm-dir và --loại trừ-dir, nó bị loại trừ. Không có ngắn
biểu mẫu cho tùy chọn này.
-F, --fixed-string
Diễn giải từng mẫu đối sánh dữ liệu dưới dạng danh sách các chuỗi cố định, được phân tách bằng
dòng mới, thay vì dưới dạng một biểu thức chính quy. Điều gì tạo nên một dòng mới cho
mục đích này được kiểm soát bởi --dòng mới Lựa chọn. Các -w (kết hợp như một từ) và
-x (đối sánh toàn bộ dòng) tùy chọn có thể được sử dụng với -F. Chúng áp dụng cho mỗi
dây cố định. Một dòng được chọn nếu tìm thấy bất kỳ chuỗi cố định nào trong đó
(tùy thuộc vào -w or -x, nếu có). Tùy chọn này chỉ áp dụng cho các mẫu
được khớp với nội dung của tệp; nó không áp dụng cho các mẫu
được chỉ định bởi bất kỳ --bao gồm or --loại trừ tùy chọn.
-f tên tập tin, --tệp =tên tập tin
Đọc các mẫu từ tệp, một mẫu trên mỗi dòng và so khớp chúng với từng dòng
đầu vào. Điều gì tạo nên một dòng mới khi đọc tệp là hoạt động
mặc định của hệ thống. Các --dòng mới tùy chọn này không có hiệu lực đối với tùy chọn này. Theo dõi
khoảng trắng bị xóa khỏi mỗi dòng và các dòng trống bị bỏ qua. Trống rỗng
tệp không chứa mẫu và do đó không có gì phù hợp. Xem thêm các bình luận
về nhiều mẫu so với một mẫu duy nhất với các lựa chọn thay thế trong
miêu tả về -e ở trên.
Nếu tùy chọn này được cung cấp nhiều hơn một lần, tất cả các tệp được chỉ định sẽ được đọc. Một dữ liệu
dòng là đầu ra nếu bất kỳ mẫu nào khớp với nó. Tên tệp có thể được cung cấp là "-"
để tham chiếu đến đầu vào tiêu chuẩn. Khi nào -f được sử dụng, các mẫu được chỉ định trên
dòng lệnh sử dụng -e cũng có thể có mặt; chúng được kiểm tra trước khi tệp
các mẫu. Tuy nhiên, không có mẫu nào khác được lấy từ dòng lệnh; tất cả các
các đối số được coi là tên của các đường dẫn được tìm kiếm.
- danh sách tệp=tên tập tin
Đọc danh sách các tệp và / hoặc thư mục sẽ được quét từ
tệp, một tệp trên mỗi dòng. Khoảng trắng ở cuối bị xóa khỏi mỗi dòng và để trống
dòng bị bỏ qua. Các đường dẫn này được xử lý trước bất kỳ đường dẫn nào được liệt kê trên
dòng lệnh. Tên tệp có thể được cung cấp là "-" để tham chiếu đến đầu vào tiêu chuẩn.
If --tập tin và - danh sách tệp đều được chỉ định là "-", các mẫu được đọc trước.
Điều này chỉ hữu ích khi đầu vào tiêu chuẩn là một thiết bị đầu cuối, từ đó xa hơn
các dòng (danh sách các tệp) có thể được đọc sau dấu hiệu kết thúc tệp. Nếu điều này
tùy chọn được cung cấp nhiều hơn một lần, tất cả các tệp được chỉ định đều được đọc.
- bù trừ tệp tin
Thay vì hiển thị các đường hoặc các phần của đường khớp, hãy hiển thị từng kết quả phù hợp dưới dạng
offset từ đầu tệp và một độ dài, được phân tách bằng dấu phẩy. Trong này
chế độ, không có ngữ cảnh nào được hiển thị. Đó là, -A, -Bvà -C các tùy chọn bị bỏ qua. Nếu như
có nhiều hơn một kết quả phù hợp trong một dòng, mỗi kết quả được hiển thị riêng biệt. Cái này
tùy chọn loại trừ lẫn nhau với - hiệu số dòng và --chỉ phù hợp.
-H, --với tên tệp
Buộc bao gồm tên tệp ở đầu các dòng đầu ra khi tìm kiếm
một tệp duy nhất. Theo mặc định, tên tệp không được hiển thị trong trường hợp này. Để phù hợp
dòng, tên tệp được theo sau bởi dấu hai chấm; đối với các dòng ngữ cảnh, một dấu gạch ngang
phân cách được sử dụng. Nếu một số dòng cũng đang được xuất, nó sẽ theo sau tệp
tên.
-h, --không có tên tệp
Loại bỏ tên tệp đầu ra khi tìm kiếm nhiều tệp. Theo mặc định,
tên tệp được hiển thị khi nhiều tệp được tìm kiếm. Đối với các dòng phù hợp,
tên tệp được theo sau bởi dấu hai chấm; đối với các dòng ngữ cảnh, dấu gạch nối phân tách được sử dụng.
Nếu một số dòng cũng đang được xuất, nó sẽ theo sau tên tệp.
--Cứu giúp Xuất ra thông báo trợ giúp, cung cấp thông tin chi tiết ngắn gọn về các tùy chọn lệnh và loại tệp
hỗ trợ, và sau đó thoát. Bất kỳ thứ gì khác trên dòng lệnh đều bị bỏ qua.
-I Coi các tệp nhị phân là không bao giờ khớp. Điều này tương đương với --nhị phân-
các tập tin=không trùng khớp.
-i, --bỏ qua trường hợp
Bỏ qua sự phân biệt chữ hoa / thường trong khi so sánh.
--bao gồm=Belt Hold
Nếu có --bao gồm các mẫu được chỉ định, các tệp duy nhất được xử lý là
những cái phù hợp với một trong các mẫu (và không khớp với một --loại trừ mẫu).
Tùy chọn này không ảnh hưởng đến các thư mục, nhưng nó áp dụng cho tất cả các tệp, cho dù
được liệt kê trên dòng lệnh, lấy từ - danh sách tệphoặc bằng cách quét
danh mục. Mẫu là một biểu thức chính quy PCRE và được so khớp với
thành phần cuối cùng của tên tệp, không phải toàn bộ đường dẫn. Các -F, -wvà -x
tùy chọn không áp dụng cho mẫu này. Tùy chọn có thể được cung cấp bất kỳ số
lần. Nếu một tên tệp phù hợp với cả hai --bao gồm và một --loại trừ mô hình, nó là
bị loại trừ. Không có hình thức ngắn cho tùy chọn này.
--include-from =tên tập tin
Coi mỗi dòng không trống của tệp là dữ liệu cho một --bao gồm Lựa chọn. Gì
tạo thành một dòng mới cho mục đích này là mặc định của hệ điều hành. Các
--dòng mới tùy chọn này không có hiệu lực đối với tùy chọn này. Tùy chọn này có thể được đưa ra bất kỳ
số lần; tất cả các tệp đã được đọc.
- bao gồm-dir=Belt Hold
Nếu có - bao gồm-dir các mẫu được chỉ định, các thư mục duy nhất được
được xử lý là những người phù hợp với một trong các mẫu (và không khớp với
--loại trừ-dir mẫu). Điều này áp dụng cho tất cả các thư mục, cho dù được liệt kê trên
dòng lệnh, lấy từ - danh sách tệphoặc bằng cách quét thư mục mẹ. Các
mẫu là một biểu thức chính quy PCRE và được so khớp với thành phần cuối cùng
của tên thư mục, không phải toàn bộ đường dẫn. Các -F, -wvà -x tùy chọn không
áp dụng cho mẫu này. Tùy chọn có thể được đưa ra bất kỳ số lần nào. Nếu một
thư mục phù hợp với cả hai - bao gồm-dir và --loại trừ-dir, nó bị loại trừ. Có
không có hình thức ngắn cho tùy chọn này.
-L, --files-không khớp
Thay vì xuất các dòng từ tệp, chỉ cần xuất tên của tệp
không chứa bất kỳ dòng nào sẽ được xuất ra. Mỗi tên tệp là
xuất một lần, trên một dòng riêng biệt.
-l, --files-with-match
Thay vì xuất các dòng từ tệp, chỉ cần xuất tên của tệp
chứa các dòng sẽ được xuất ra. Mỗi tên tệp được xuất một lần, vào
một dòng riêng biệt. Tìm kiếm thường dừng lại ngay sau khi tìm thấy dòng phù hợp trong
một tập tin. Tuy nhiên, nếu -c (đếm) tùy chọn cũng được sử dụng, đối sánh tiếp tục trong
để có được số lượng chính xác và những tệp có ít nhất một tệp trùng khớp
được liệt kê cùng với số lượng của họ. Sử dụng tùy chọn này với -c là một cách
ngăn chặn danh sách các tệp không có kết quả phù hợp.
--nhãn mác=tên
Tùy chọn này cung cấp tên sẽ được sử dụng cho đầu vào chuẩn khi tên tệp
đang được xuất. Nếu không được cung cấp, "(đầu vào chuẩn)" sẽ được sử dụng. Không có ngắn
biểu mẫu cho tùy chọn này.
- dòng đệm
Khi tùy chọn này được cung cấp, đầu vào được đọc và xử lý từng dòng, và
đầu ra được tuôn ra sau mỗi lần ghi. Theo mặc định, thông tin đầu vào được đọc ở dạng khối lớn,
trừ khi pcregrep có thể xác định rằng nó đang đọc từ một thiết bị đầu cuối (đó là
hiện chỉ có thể trong môi trường giống Unix). Đầu ra cho thiết bị đầu cuối là
thường tự động xả bởi hệ điều hành. Tùy chọn này có thể được
hữu ích khi đầu vào hoặc đầu ra được gắn vào một đường ống và bạn không muốn
pcregrep để đệm một lượng lớn dữ liệu. Tuy nhiên, việc sử dụng nó sẽ ảnh hưởng đến
hiệu suất, và -M (nhiều dòng) tùy chọn ngừng hoạt động.
- hiệu số dòng
Thay vì hiển thị các dòng hoặc các phần của các dòng trùng khớp, hãy hiển thị từng kết quả trùng khớp dưới dạng một dòng
số, độ lệch từ đầu dòng và độ dài. Số dòng là
kết thúc bằng dấu hai chấm (như thường lệ; xem phần -n tùy chọn), và độ lệch và độ dài
được phân tách bằng dấu phẩy. Trong chế độ này, không có ngữ cảnh nào được hiển thị. Đó là, -A,
-Bvà -C các tùy chọn bị bỏ qua. Nếu có nhiều hơn một kết quả phù hợp trong một dòng, mỗi
trong số chúng được hiển thị riêng biệt. Tùy chọn này loại trừ lẫn nhau với --tập tin-
bù đắp và --chỉ phù hợp.
--ngôn ngữ=tên miền địa phương
Tùy chọn này chỉ định một ngôn ngữ được sử dụng để đối sánh mẫu. Nó ghi đè
giá trị trong LC_ALL or LC_CTYPE các biến môi trường. Nếu không có ngôn ngữ là
được chỉ định, mặc định của thư viện PCRE (thường là ngôn ngữ "C") được sử dụng. Có
không có hình thức ngắn cho tùy chọn này.
- giới hạn phù hợp=con số
Việc xử lý một số mẫu biểu thức chính quy có thể yêu cầu một lượng rất lớn
bộ nhớ, trong một số trường hợp dẫn đến sự cố chương trình nếu không có đủ bộ nhớ.
Các mẫu khác có thể mất rất nhiều thời gian để tìm kiếm tất cả các mẫu phù hợp có thể có
dây. Các pcre_exec () hàm được gọi bởi pcregrep để thực hiện kết hợp
có hai tham số có thể giới hạn tài nguyên mà nó sử dụng.
- giới hạn phù hợp tùy chọn cung cấp một phương tiện hạn chế việc sử dụng tài nguyên khi
các mẫu xử lý sẽ không phù hợp, nhưng có một
số khả năng trong cây tìm kiếm của họ. Ví dụ cổ điển là một mẫu
sử dụng lặp lại không giới hạn lồng nhau. Trong nội bộ, PCRE sử dụng một chức năng được gọi là
trận đấu() mà nó gọi nhiều lần (đôi khi đệ quy). Giới hạn do
- giới hạn phù hợp được áp dụng cho số lần hàm này được gọi trong một
phù hợp, có tác dụng hạn chế số lượng bẻ khóa ngược có thể xảy ra
thay thế.
- giới hạn lưu trữ tùy chọn tương tự như - giới hạn phù hợp, nhưng thay vì
giới hạn tổng số lần trận đấu() được gọi là, nó giới hạn độ sâu
của các cuộc gọi đệ quy, do đó giới hạn số lượng bộ nhớ có thể được sử dụng.
Độ sâu đệ quy là một số nhỏ hơn tổng số lệnh gọi, bởi vì
không phải tất cả các cuộc gọi đến trận đấu() là đệ quy. Giới hạn này chỉ được sử dụng nếu nó được đặt
nhỏ hơn - giới hạn phù hợp.
Không có biểu mẫu ngắn cho các tùy chọn này. Cài đặt mặc định được chỉ định
khi thư viện PCRE được biên dịch, với giá trị mặc định là 10 triệu.
-M, --đa dòng
Cho phép các mẫu khớp với nhiều hơn một dòng. Khi tùy chọn này được đưa ra, các mẫu
có thể chứa các ký tự dòng mới theo nghĩa đen một cách hữu ích và các lần xuất hiện bên trong của ^
và $ ký tự. Đầu ra cho một trận đấu thành công có thể bao gồm nhiều hơn một
dòng cuối cùng là dòng kết thúc trận đấu. Nếu phù hợp
chuỗi kết thúc bằng một chuỗi dòng mới đầu ra kết thúc ở cuối dòng đó.
Khi tùy chọn này được đặt, thư viện PCRE được gọi ở chế độ "đa dòng". Ở đó
là giới hạn số dòng có thể được so khớp, được áp đặt theo cách
pcregrep đệm tệp đầu vào khi nó quét. Tuy vậy, pcregrep đảm bảo rằng
ít nhất 8K ký tự hoặc phần còn lại của tài liệu (tùy theo ký tự nào ngắn hơn)
có sẵn để đối sánh chuyển tiếp và tương tự với 8K ký tự trước đó (hoặc
tất cả các ký tự trước đó, nếu ít hơn 8K) được đảm bảo có sẵn
cho các xác nhận hậu trường. Tùy chọn này không hoạt động khi đầu vào được đọc từng dòng
dòng (xem - dòng đệm.)
-N kiểu dòng mới, --dòng mới=kiểu dòng mới
Thư viện PCRE hỗ trợ năm quy ước khác nhau để chỉ ra các điểm cuối của
các dòng. Chúng là các chuỗi ký tự đơn CR (xuống dòng) và LF
(nguồn cấp dữ liệu dòng), chuỗi hai ký tự CRLF, quy ước "anycrlf",
công nhận bất kỳ loại nào trong ba loại trước đó và quy ước "bất kỳ", trong đó
bất kỳ chuỗi kết thúc dòng Unicode nào được coi là kết thúc một dòng. Các chuỗi Unicode
là ba cái vừa được đề cập, cộng với VT (tab dọc, U + 000B), FF (nguồn cấp dữ liệu biểu mẫu,
U + 000C), NEL (dòng tiếp theo, U + 0085), LS (dấu phân cách dòng, U + 2028) và PS (đoạn
dấu phân cách, U + 2029).
Khi thư viện PCRE được tạo, một trình tự kết thúc dòng mặc định được chỉ định.
Đây thường là trình tự tiêu chuẩn cho hệ điều hành. Trừ phi
nếu không được chỉ định bởi tùy chọn này, pcregrep sử dụng mặc định của thư viện. Các
các giá trị có thể có cho tùy chọn này là CR, LF, CRLF, ANYCRLF hoặc ANY. Điều này làm cho nó
có thể sử dụng pcregrep để quét các tệp đến từ các môi trường khác
mà không cần phải sửa đổi phần cuối dòng của chúng. Nếu dữ liệu đang được quét
không đồng ý với quy ước được thiết lập bởi tùy chọn này, pcregrep có thể cư xử trong
Cách kỳ lạ. Lưu ý rằng tùy chọn này không áp dụng cho các tệp được chỉ định bởi -f,
--Loại khỏi, hoặc là --bao gồm-từ các tùy chọn, dự kiến sẽ sử dụng
trình tự dòng mới tiêu chuẩn của hệ điều hành.
-n, --số dòng
Bắt đầu mỗi dòng đầu ra bằng số dòng của nó trong tệp, sau đó là dấu hai chấm cho
các dòng phù hợp hoặc một dấu gạch nối cho các dòng ngữ cảnh. Nếu tên tệp cũng đang
đầu ra, nó đứng trước số dòng. Tùy chọn này là bắt buộc nếu - hiệu số dòng is
đã sử dụng.
--không-jit Nếu thư viện PCRE được xây dựng với sự hỗ trợ để biên dịch đúng lúc (mà
tăng tốc độ khớp), pcregrep tự động sử dụng điều này, trừ khi nó
bị vô hiệu hóa rõ ràng tại thời điểm xây dựng. Tùy chọn này có thể được sử dụng để vô hiệu hóa việc sử dụng
JIT tại thời điểm chạy. Nó được cung cấp để thử nghiệm và các bài toán vòng làm việc. Nó
không bao giờ cần thiết trong sử dụng bình thường.
-o, --chỉ phù hợp
Chỉ hiển thị một phần của dòng khớp với một mẫu thay vì toàn bộ dòng.
Trong chế độ này, không có ngữ cảnh nào được hiển thị. Đó là, -A, -Bvà -C lựa chọn là
mặc kệ. Nếu có nhiều hơn một kết quả phù hợp trong một dòng, mỗi kết quả trong số chúng sẽ được hiển thị
riêng biệt. Nếu như -o được kết hợp với -v (đảo ngược ý nghĩa của trận đấu để tìm
dòng không khớp), không có đầu ra nào được tạo, nhưng mã trả về được đặt
thích hợp. Nếu phần phù hợp của dòng trống, không có gì là đầu ra
trừ khi tên tệp hoặc số dòng đang được in, trong trường hợp đó chúng được
được hiển thị trên một dòng trống khác. Tùy chọn này loại trừ lẫn nhau với --tập tin-
bù đắp và - hiệu số dòng.
-ocon số, --chỉ phù hợp=con số
Chỉ hiển thị phần của dòng khớp với dấu ngoặc đơn thu được của
số đã cho. Hỗ trợ tối đa 32 dấu ngoặc đơn và -o0 là
tương đương với -o không có số. Bởi vì các tùy chọn này có thể được đưa ra mà không có
đối số (xem ở trên), nếu có đối số, nó phải được đưa ra cùng
mục shell, ví dụ, -o3 hoặc --only-match = 2. Các nhận xét được đưa ra cho
trường hợp không đối số ở trên cũng áp dụng cho trường hợp này. Nếu chụp được chỉ định
dấu ngoặc đơn không tồn tại trong mẫu hoặc không được đặt trong khớp, không có gì
là đầu ra trừ khi tên tệp hoặc số dòng đang được in.
Nếu tùy chọn này được đưa ra nhiều lần, nhiều chuỗi con được xuất ra, trong
thứ tự các tùy chọn được đưa ra. Ví dụ, -o3 -o1 -o3 gây ra các chuỗi con
được so khớp bằng cách bắt cặp dấu ngoặc đơn 3 và 1 và sau đó 3 lần nữa để được xuất ra. Qua
mặc định, không có dấu phân tách (nhưng hãy xem tùy chọn tiếp theo).
- dấu phân tách=văn bản
Chỉ định một chuỗi phân tách cho nhiều lần xuất hiện -o. Mặc định là một
chuỗi rỗng. Các chuỗi phân cách không bao giờ có màu.
-q, --Yên lặng
Làm việc nhẹ nhàng, nghĩa là, không hiển thị gì ngoại trừ thông báo lỗi. Trạng thái thoát
cho biết liệu có bất kỳ kết quả phù hợp nào được tìm thấy hay không.
-r, --đệ quy
Nếu bất kỳ đường dẫn nhất định nào là một thư mục, hãy quét đệ quy các tệp mà nó chứa, lấy
lưu ý của bất kỳ --bao gồm và --loại trừ cài đặt. Theo mặc định, một thư mục được đọc là
một tập tin bình thường; trong một số hệ điều hành, điều này cho kết thúc tệp ngay lập tức.
Tùy chọn này là cách viết tắt để thiết lập -d tùy chọn "đệ quy".
- giới hạn lưu trữ=con số
Xem - giới hạn phù hợp ở trên.
-s, --không có tin nhắn
Loại bỏ thông báo lỗi về các tệp không tồn tại hoặc không thể đọc được. Các tệp như vậy là
lặng lẽ bỏ qua. Tuy nhiên, mã trả về vẫn là 2, ngay cả khi các kết quả phù hợp được tìm thấy
trong các tệp khác.
-u, --utf-8
Hoạt động ở chế độ UTF-8. Tùy chọn này chỉ khả dụng nếu PCRE đã được biên dịch
với hỗ trợ UTF-8. Tất cả các mẫu (bao gồm cả những mẫu cho bất kỳ --loại trừ và
--bao gồm tùy chọn) và tất cả các dòng chủ đề được quét phải là các chuỗi hợp lệ
trong số các ký tự UTF-8.
-V, --phiên bản
Viết số phiên bản của pcregrep và thư viện PCRE theo tiêu chuẩn
đầu ra và sau đó thoát ra. Bất kỳ thứ gì khác trên dòng lệnh đều bị bỏ qua.
-v, --đảo ngược kết hợp
Đảo ngược cảm giác của trận đấu, để các dòng làm không phù hợp với bất kỳ
các mẫu là những cái được tìm thấy.
-w, --word-regex, --word-regrec
Buộc các mẫu chỉ khớp với toàn bộ các từ. Điều này tương đương với việc có \ b tại
đầu và cuối của mẫu. Tùy chọn này chỉ áp dụng cho các mẫu
được khớp với nội dung của tệp; nó không áp dụng cho các mẫu
được chỉ định bởi bất kỳ --bao gồm or --loại trừ tùy chọn.
-x, --line-regex, --line-regrec
Buộc cố định các mẫu (mỗi mẫu phải bắt đầu khớp ở đầu
một dòng) và ngoài ra, yêu cầu chúng phải khớp với toàn bộ các dòng. Điều này tương đương
có các ký tự ^ và $ ở đầu và cuối mỗi nhánh thay thế trong
mọi mẫu. Tùy chọn này chỉ áp dụng cho các mẫu được so khớp với
nội dung của các tập tin; nó không áp dụng cho các mẫu được chỉ định bởi bất kỳ
--bao gồm or --loại trừ tùy chọn.
MÔI TRƯỜNG BIẾN
Các biến môi trường LC_ALL và LC_CTYPE được kiểm tra, theo thứ tự đó, cho một ngôn ngữ.
Cái đầu tiên được thiết lập được sử dụng. Điều này có thể bị ghi đè bởi --ngôn ngữ Lựa chọn. Nếu không
ngôn ngữ được đặt, mặc định của thư viện PCRE (thường là ngôn ngữ "C") được sử dụng.
TUYẾN MỚI
-N (--dòng mới) tùy chọn cho phép pcregrep để quét các tệp với các quy ước dòng mới khác nhau
từ mặc định. Bất kỳ phần nào của tệp đầu vào được ghi vào đầu ra tiêu chuẩn là
được sao chép giống hệt nhau, với bất kỳ trình tự dòng mới nào mà chúng có trong đầu vào. Tuy nhiên,
cài đặt của tùy chọn này không ảnh hưởng đến việc giải thích các tệp được chỉ định bởi -f,
--Loại khỏi, hoặc là --bao gồm-từ các tùy chọn, được giả định là sử dụng hệ điều hành của
trình tự dòng mới tiêu chuẩn, cũng như không ảnh hưởng đến cách thức pcregrep viết
thông báo về lỗi chuẩn và các luồng đầu ra. Đối với những điều này, nó sử dụng
chuỗi "\ n" để chỉ ra các dòng mới, dựa vào thư viện CI / O để chuyển đổi chuỗi này thành
trình tự thích hợp.
LỰA CHỌN Tương thích
Nhiều dạng ngắn và dài của pcregrepCác tùy chọn của giống như trong GNU grep
chương trình. Bất kỳ tùy chọn dài nào của biểu mẫu --xxx-regrec (Thuật ngữ GNU) cũng có sẵn dưới dạng
--xxx-regex (Thuật ngữ PCRE). Tuy nhiên, - danh sách tệp, - bù trừ tệp tin, - bao gồm-dir,
- hiệu số dòng, --ngôn ngữ, - giới hạn phù hợp, -M, --đa dòng, -N, --dòng mới, - dấu phân tách,
- giới hạn lưu trữ, -uvà --utf-8 các tùy chọn cụ thể cho pcregrep, cũng như việc sử dụng
--chỉ phù hợp tùy chọn với số lượng dấu ngoặc đơn.
Mặc dù hầu hết các tùy chọn phổ biến hoạt động theo cùng một cách, một số tùy chọn khác nhau về pcregrep.
Ví dụ, các --bao gồm đối số của option là một toàn cầu cho GNU grep, nhưng thường xuyên
biểu hiện cho pcregrep. Nếu cả hai -c và -l các tùy chọn được đưa ra, GNU grep chỉ liệt kê tệp
tên, không có số đếm, nhưng pcregrep đưa ra số đếm.
LỰA CHỌN CÙNG VỚI DỮ LIỆU
Có bốn cách khác nhau để có thể chỉ định một tùy chọn với dữ liệu. Nếu ngắn
tùy chọn biểu mẫu được sử dụng, dữ liệu có thể theo sau ngay lập tức hoặc (với một ngoại lệ) trong lần tiếp theo
mục dòng lệnh. Ví dụ:
-f / some / file
-f / some / file
Ngoại lệ là -o tùy chọn này có thể xuất hiện có hoặc không có dữ liệu. Bởi vì điều này,
nếu dữ liệu hiện diện, nó phải theo sau ngay trong cùng một mục, ví dụ -o3.
Nếu tùy chọn biểu mẫu dài được sử dụng, dữ liệu có thể xuất hiện trong cùng một mục dòng lệnh,
được phân tách bằng một ký tự bằng hoặc (với hai ngoại lệ), nó có thể xuất hiện trong phần tiếp theo
mục dòng lệnh. Ví dụ:
--file = / some / file
--file / some / file
Tuy nhiên, lưu ý rằng nếu bạn muốn cung cấp tên tệp bắt đầu bằng ~ dưới dạng dữ liệu trong một trình bao
và để shell mở rộng ~ đến một thư mục chính, bạn phải tách riêng tên tệp
từ tùy chọn, bởi vì shell không xử lý ~ đặc biệt trừ khi nó ở đầu
một món đồ.
Các trường hợp ngoại lệ ở trên là --màu sắc (Hoặc --màu sắc) Và --chỉ phù hợp tùy chọn, cho
mà dữ liệu là tùy chọn. Nếu một trong những tùy chọn này có dữ liệu, nó phải được cung cấp trong
dạng đầu tiên, sử dụng ký tự bằng. Nếu không thì pcregrep sẽ cho rằng nó không có
dữ liệu.
TRẬN ĐẤU LRI
Có thể cung cấp một biểu thức chính quy mất một thời gian rất dài để không khớp
dòng nhất định. Các mẫu như vậy thường liên quan đến các lần lặp lại vô thời hạn được lồng vào nhau, ví dụ:
(a +) * \ d khi so khớp với một dòng của a không có chữ số cuối cùng. Chức năng khớp PCRE
có giới hạn tài nguyên khiến nó bị hủy bỏ trong những trường hợp này. Nếu điều này xảy ra,
pcregrep xuất ra thông báo lỗi và dòng gây ra sự cố theo tiêu chuẩn
dòng lỗi. Nếu có hơn 20 lỗi như vậy, pcregrep bỏ cuộc.
- giới hạn phù hợp tùy chọn pcregrep có thể được sử dụng để đặt giới hạn tài nguyên tổng thể; ở đó
là một lựa chọn thứ hai được gọi là - giới hạn lưu trữ điều đó đặt ra giới hạn về dung lượng bộ nhớ
(thường là ngăn xếp) được sử dụng (xem phần thảo luận về các tùy chọn này ở trên).
CHẨN ĐOÁN
Trạng thái thoát là 0 nếu tìm thấy bất kỳ kết quả phù hợp nào, 1 nếu không tìm thấy kết quả phù hợp nào và 2 cho cú pháp
lỗi, dòng quá dài, tệp không tồn tại hoặc không thể truy cập được (ngay cả khi các tệp trùng khớp được tìm thấy trong
các tệp khác) hoặc quá nhiều lỗi khớp. Sử dụng -s tùy chọn để ngăn chặn các thông báo lỗi
về các tệp không thể truy cập không ảnh hưởng đến mã trả lại.
Sử dụng pcregrep trực tuyến bằng các dịch vụ onworks.net