Làm thế nào để in trận đấu đầu tiên và dừng lại với Grep

grep là một tiện ích tìm kiếm trong Linux được sử dụng để đối sánh nội dung. Theo mặc định, nó sẽ in ra bất kỳ dòng nào phù hợp, có thể bao gồm nhiều đầu ra. Nếu bạn chỉ quan tâm đến trận đấu đầu tiên, bạn có thể giới hạn đầu ra chỉ ở dòng đầu tiên.

Giới hạn đầu ra với grep -m

Các grep lệnh có một -m hoặc --max-count tham sốr, có thể giải quyết vấn đề này, nhưng nó có thể không hoạt động như bạn mong đợi.

Bạn Đang Xem: Làm thế nào để in trận đấu đầu tiên và dừng lại với Grep

Tham số này sẽ làm cho grep dừng đối sánh sau khi tìm thấy N dòng phù hợp, điều này hoạt động tốt vì nó sẽ giới hạn đầu ra ở một dòng, luôn chứa kết quả khớp đầu tiên. Chúng tôi có thể xác minh điều này với -n cờ để in số dòng.

grep -m 1 "foo" file

Xem Thêm : Dell đang tắt ứng dụng đồng bộ hóa điện thoại của mình

Tuy nhiên, điều này có một số mặt trái mà bạn cần lưu ý. Nó không dừng lại sau N diêmnó dừng lại sau N dòng. Điều này sẽ gây ra grep để khớp nhiều lần trên mỗi dòng, điều này có thể gây ra vấn đề khi sử dụng với -o cờ, in mỗi trận đấu trên một dòng mới.

Ngoài ra, nó chỉ có N dòng mỗi tập tinvì vậy khi được sử dụng với nhiều tệp, nó sẽ in ra dòng phù hợp đầu tiên cho mỗi tệp.

Sử dụng đầu để giới hạn đầu ra grep

Cách thay thế là chuyển đầu ra đến một lệnh khác, head, điều này sẽ đơn giản là cắt đầu vào sau N dòng. Nó vẫn còn một chút hữu ích để sử dụng -m 1 với grep tuy nhiên, vì nó sẽ ngừng xử lý các tệp lớn nếu tìm thấy khớp sớm.

grep "foo" file_one.txt | head -1

Xem Thêm : Tắt Chế độ An toàn trên Android

Điều này hoạt động với -o cờ để chỉ in kết quả phù hợp đầu tiên, ngay cả khi có nhiều kết quả phù hợp trong một tệp:

Tuy nhiên, hãy cẩn thận khi sử dụng điều này với nhiều tệp. Sử dụng head sẽ in dòng phù hợp đầu tiên trong bất kỳ tệp nào. Đây có thể là một vấn đề như grep in đầu ra theo thứ tự nó xử lý các tệp và bạn có thể không biết thứ tự các tệp sẽ được xử lý trừ khi bạn sắp xếp chúng theo cách thủ công trước khi chuyển chúng đến grep.

Tương tự, bạn cũng có thể sử dụng tail để in dòng phù hợp cuối cùng.


Nguồn: https://maytinhvang.com
Danh mục: TIN HỌC

Bài viết liên quan

0903064855
chat-active-icon