In biểu thức chính quy toàn cầu hoặc chỉ grep là một trong những lệnh linh hoạt và phổ biến nhất trong các hệ thống Unix và Linux. Lệnh tìm kiếm một hoặc nhiều tệp đầu vào và các dòng mẫu phù hợp. Kết quả là, bạn có được một đầu ra tiêu chuẩn với các dòng phù hợp.
Nếu bạn không chỉ định một tệp, grep sử dụng đầu vào tiêu chuẩn cho các lần đọc và rất có thể đó sẽ là đầu ra của lệnh khác. Nhìn chung, grep có tính năng cú pháp đơn giản cho dù bạn sử dụng nó có hoặc không có tên tệp.
Bài viết này cung cấp cho bạn tổng quan nhanh về cú pháp grep và một số lệnh cơ bản bạn có thể sử dụng có hoặc không có tên tệp.
Trước khi bạn bắt đầu
Tất cả các lệnh grep đều theo cùng một cú pháp và mỗi tham số có một chức năng cụ thể. Đây là dòng mẫu:
grep
Bạn có thể sử dụng một số TÙY CHỌN trong grep để kiểm soát đầu ra lệnh và số bắt đầu từ 0. THỰC TRẠNG chỉ ra mẫu tìm kiếm bạn muốn áp dụng. Đối với TẬP_TIN, đây là nơi tên tệp hoặc tên đi, nhưng tham số có thể được đặt thành không.
Tìm kiếm chuỗi trong đầu ra lệnh
Như đã chỉ ra, bạn không cần sử dụng các tệp đầu vào cụ thể. Đầu ra của lệnh khác có thể được sử dụng trong grep để có được các dòng khớp chính xác với một mẫu. Điều này có thể được sử dụng để xác định quá trình nào đang hoạt động trên hệ thống. Đây là cú pháp lệnh mẫu:
$ ps -ef | dữ liệu grep www
Đầu ra bạn nhận được sẽ trông giống như thế này:
dữ liệu www 18247 12675 4 16:00? 00:00:00 php-fpm: hồ bơi www
root 18272 17714 0 16:00 pts / 0 00:00: 00 dir = .svn www-dữ liệu
dữ liệu www 31147 12770 0 tháng 1022? 00:05:51 nginx: quy trình công nhân
dữ liệu www 31148 12770 0 tháng 1022? 00:00:00 nginx: quy trình quản lý bộ đệm
Có một cách để loại trừ dòng lệnh có các quy trình grep. Đối với điều này, bạn cần sử dụng $ ps -ef | dữ liệu grep www | lệnh grep -v grep .
Tìm kiếm từ Grep
Bạn có thể sử dụng các lệnh grep để tìm kiếm các từ cụ thể trong các tệp trên hệ thống của bạn. Trong thực tế, không cần phải gõ toàn bộ một từ. Bạn chỉ có thể sử dụng gnu, ví dụ, và lệnh xuất ra tất cả các từ có ba chữ cái này trong đó. Cú pháp lệnh là:
$ grep gnu / usr / chia sẻ / từ
Sau khi thực hiện lệnh, đầu ra của bạn sẽ trông giống như thế này:
tế bào
con quỷ
interregnum
lgnu9d
lignum
kiệt tác
đại gia
tủy
cánh dẻ
Mặt khác, bạn có thể tìm kiếm chỉ từ hoặc chuỗi chữ cái cụ thể đó và loại trừ mọi thứ khác. Đối với điều này, bạn cần thêm -w hoặc mật khẩu - regrec vào cú pháp. Trong trường hợp này, lệnh ví dụ trông như thế này - $ grep -w gnu / usr / share / words .
Lưu ý: Đối với mục đích ngữ pháp, một số lệnh dừng hoàn toàn ở cuối. Bạn không cần dấu chấm câu cho grep. Loại trừ nó khi bạn sao chép / dán lệnh.
Grep Case có nhạy cảm không?
Tất cả các lệnh grep được phân biệt chữ hoa chữ thường. Điều này có nghĩa là việc sử dụng các ký tự chữ thường và chữ hoa tạo nên sự khác biệt trong chính lệnh. Tuy nhiên, bạn có thể thêm - i ( - bỏ qua - trường hợp ) vào dòng lệnh và cho phép hệ thống tìm kiếm cả chữ hoa và chữ thường.
Ví dụ: lệnh đầu vào của bạn có thể trông giống như $ grep -i Zebra / usr / share / words này . Nó cho phép đầu ra khớp với bất kỳ sự kết hợp nào của chữ in hoa và in thường khi nó tìm kiếm ngựa vằn.
Số dòng
Sử dụng tùy chọn số dòngline hoặc chỉ -n để xác định số lượng dòng có chuỗi phù hợp với một mẫu tìm kiếm cụ thể. Kết quả là, bạn có được một đầu ra tiêu chuẩn với một số dòng ở phía trước nó.
Lệnh chính xác có thể trông như thế này: $ grep -n 10000 / etc / services . Khi thực hiện, đầu ra cung cấp tất cả các kết quả khớp tìm thấy trên 10000 dòng. Kiểm tra mẫu dưới đây:
10423: ndmp 10000 / tcp
10424: ndmp 10000 / udp
Tập tin trong thư mục
Bạn có thể đặt dấu hoa thị phía sau lệnh grep thay vì tên tệp. Sử dụng lại tiêu chí gnu, lệnh này trông giống như $ grep gnu * này và đầu ra liệt kê các tệp có chứa gnu . Điều quan trọng cần lưu ý là loại lệnh này trả về một dòng.
Lưu ý: Với grep, một dòng đề cập đến một chuỗi các ký tự chạy đến một dấu ngắt được chỉ định. Trừ khi bạn tinh chỉnh tìm kiếm, đầu ra có thể chứa toàn bộ các đoạn thông tin.
Bước tiếp theo với Grep
Hướng dẫn này chỉ làm trầy xước bề mặt của những gì bạn có thể làm với grep. Có thể mất một lúc để có được tất cả các tỷ lệ cược và kết thúc, nhưng cú pháp tuân theo một nguyên tắc khá đơn giản. Và với một số thực hành, bạn sẽ có thể tinh chỉnh các tìm kiếm của mình thành hoàn hảo, có hoặc không có tên tệp.
